[jboss-cvs] JBossAS SVN: r90363 - in projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search: de-DE and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jun 17 20:52:53 EDT 2009


Author: xhuang at jboss.com
Date: 2009-06-17 20:52:53 -0400 (Wed, 17 Jun 2009)
New Revision: 90363

Added:
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Architecture.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Author_Group.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Batch_Index.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Book_Info.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Configuration.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Feedback.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Getting_Started.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Hibernate_Search_Reference_Guide_CP04_FP01.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Introduction.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Lucene_Native.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Mapping.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Optimize.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Preface.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Query.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Revision_History.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Architecture.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Author_Group.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Batch_Index.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Book_Info.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Configuration.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Feedback.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Getting_Started.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Hibernate_Search_Reference_Guide_CP04_FP01.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Introduction.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Lucene_Native.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Mapping.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Optimize.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Preface.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Query.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Revision_History.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Architecture.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Author_Group.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Batch_Index.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Book_Info.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Configuration.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Feedback.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Getting_Started.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Hibernate_Search_Reference_Guide_CP04_FP01.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Introduction.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Lucene_Native.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Optimize.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Preface.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Query.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Revision_History.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Architecture.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Author_Group.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Batch_Index.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Book_Info.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Configuration.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Feedback.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Getting_Started.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Hibernate_Search_Reference_Guide_CP04_FP01.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Introduction.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Lucene_Native.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Mapping.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Optimize.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Preface.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Query.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Revision_History.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Architecture.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Author_Group.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Batch_Index.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Book_Info.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Configuration.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Feedback.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Getting_Started.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Hibernate_Search_Reference_Guide_CP04_FP01.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Introduction.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Lucene_Native.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Mapping.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Optimize.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Preface.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Query.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Revision_History.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Architecture.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Author_Group.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Batch_Index.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Book_Info.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Configuration.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Feedback.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Getting_Started.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Hibernate_Search_Reference_Guide_CP04_FP01.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Introduction.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Lucene_Native.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Mapping.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Optimize.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Preface.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Query.po
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Revision_History.po
Modified:
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/Makefile
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Architecture.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Author_Group.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Batch_Index.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Book_Info.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Configuration.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Feedback.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Getting_Started.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Introduction.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Lucene_Native.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Mapping.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Optimize.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Preface.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Query.pot
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Revision_History.pot
Log:
generate po

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/Makefile
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/Makefile	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/Makefile	2009-06-18 00:52:53 UTC (rev 90363)
@@ -5,6 +5,7 @@
 BRAND		= JBoss
 
 #OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN
 
 COMMON_CONFIG  = /usr/share/publican
 include $(COMMON_CONFIG)/make/Makefile.common

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Architecture.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Architecture.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Architecture.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,367 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture.xml:6
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:9
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:11
+#, no-c-format
+msgid ""
+"Hibernate Search consists of an indexing and an index search engine. Both "
+"are backed by Apache Lucene."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:14
+#, no-c-format
+msgid ""
+"When an entity is inserted, updated or removed in/from the database, "
+"Hibernate Search keeps track of this event (through the Hibernate event "
+"system) and schedules an index update. All the index updates are handled for "
+"you without you having to use the Apache Lucene APIs (see <xref linkend="
+"\"Hibernate_Search-Configuration-Event\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:19
+#, no-c-format
+msgid ""
+"To interact with Apache Lucene indexes, Hibernate Search has the notion of "
+"<classname>DirectoryProvider</classname>s. A directory provider will manage "
+"a given Lucene <classname>Directory</classname> type. You can configure "
+"directory providers to adjust the directory target (see <xref linkend="
+"\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:24
+#, no-c-format
+msgid ""
+"Hibernate Search can also use the Lucene index to search an entity and "
+"return a list of managed entities saving you the tedious object to Lucene "
+"document mapping. The same persistence context is shared between Hibernate "
+"and Hibernate Search; as a matter of fact, the Search Session is built on "
+"top of the Hibernate Session. The application code use the unified "
+"<classname>org.hibernate.Query</classname> or <classname>javax.persistence."
+"Query</classname> APIs exactly the way a HQL, JPA-QL or native queries would "
+"do."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:33
+#, no-c-format
+msgid ""
+"To be more efficient, Hibernate Search batches the write interactions with "
+"the Lucene index. There is currently two types of batching depending on the "
+"expected scope."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:37
+#, no-c-format
+msgid ""
+"Outside a transaction, the index update operation is executed right after "
+"the actual database operation. This scope is really a no scoping setup and "
+"no batching is performed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:41
+#, no-c-format
+msgid ""
+"It is however recommended, for both your database and Hibernate Search, to "
+"execute your operation in a transaction be it JDBC or JTA. When in a "
+"transaction, the index update operation is scheduled for the transaction "
+"commit and discarded in case of transaction rollback. The batching scope is "
+"the transaction. There are two immediate benefits:"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:50
+#, no-c-format
+msgid ""
+"Performance: Lucene indexing works better when operation are executed in "
+"batch."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:55
+#, no-c-format
+msgid ""
+"ACIDity: The work executed has the same scoping as the one executed by the "
+"database transaction and is executed if and only if the transaction is "
+"committed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:60
+#, no-c-format
+msgid ""
+"Disclaimer, the work in not ACID in the strict sense of it, but ACID "
+"behavior is rarely useful for full text search indexes since they can be "
+"rebuilt from the source at any time."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:67
+#, no-c-format
+msgid ""
+"You can think of those two scopes (no scope vs transactional) as the "
+"equivalent of the (infamous) auto-commit vs transactional behavior. From a "
+"performance perspective, the <emphasis>in transaction</emphasis> mode is "
+"recommended. The scoping choice is made transparently: Hibernate Search "
+"detects the presence of a transaction and adjust the scoping."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:74
+#, no-c-format
+msgid ""
+"Hibernate Search works perfectly fine in the Hibernate / EntityManager long "
+"conversation pattern aka. atomic conversation."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:80
+#, no-c-format
+msgid ""
+"Depending on user demand, additional scoping will be considered, the "
+"pluggability mechanism being already in place."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:87
+#, no-c-format
+msgid "Back End"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:89
+#, no-c-format
+msgid ""
+"Hibernate Search offers the ability to let the scoped work being processed "
+"by different back ends. Two back ends are provided out of the box for two "
+"different scenarios."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:96
+#, no-c-format
+msgid ""
+"Hibernate Search is an extensible architecture. While not yet part of the "
+"public API, plugging a third party back end is possible. Feel free to drop "
+"ideas to <literal>hibernate-dev at lists.jboss.org</literal>."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:102
+#, no-c-format
+msgid "Lucene"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:104
+#, no-c-format
+msgid ""
+"In this mode, all index update operations applied on a given node (JVM) will "
+"be executed to the Lucene directories (through the directory providers) by "
+"the same node. This mode is typically used in non clustered environment or "
+"in clustered environments where the directory store is shared."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:120
+#, no-c-format
+msgid ""
+"This mode targets non clustered applications, or clustered applications "
+"where the Directory is taking care of the locking strategy."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:126
+#, no-c-format
+msgid ""
+"The main advantage is simplicity and immediate visibility of the changes in "
+"Lucene queries (a requirement is some applications)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:133
+#, no-c-format
+msgid "<title>JMS</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:135
+#, no-c-format
+msgid ""
+"All index update operations applied on a given node are sent to a JMS queue. "
+"A unique reader will then process the queue and update the master Lucene "
+"index. The master index is then replicated on a regular basis to the slave "
+"copies. This is known as the master / slaves pattern. The master is the sole "
+"responsible for updating the Lucene index. The slaves can accept read as "
+"well as write operations. However, they only process the read operation on "
+"their local index copy and delegate the update operations to the master."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:153
+#, no-c-format
+msgid ""
+"This mode targets clustered environments where throughput is critical, and "
+"index update delays are affordable. Reliability is ensured by the JMS "
+"provider and by having the slaves working on a local copy of the index."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:161
+#, no-c-format
+msgid "Work Execution"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:163
+#, no-c-format
+msgid ""
+"The indexing work (done by the back end) can be executed synchronously with "
+"the transaction commit (or update operation if out of transaction), or "
+"asynchronously."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:168
+#, no-c-format
+msgid "Synchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:170
+#, no-c-format
+msgid ""
+"This is the safe mode where the back end work is executed in concert with "
+"the transaction commit. Under highly concurrent environment, this can lead "
+"to throughput limitations (due to the Apache Lucene lock mechanism) and it "
+"can increase the system response time if the backend is significantly slower "
+"than the transactional process and if a lot of IO operations are involved."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:179
+#, no-c-format
+msgid "Asynchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:181
+#, no-c-format
+msgid ""
+"This mode delegates the work done by the back end to a different thread. "
+"That way, throughput and response time are (to a certain extend) "
+"decorrelated from the back end performance. The drawback is that a small "
+"delay appears between the transaction commit and the index update and a "
+"small overhead is introduced to deal with thread management."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:187
+#, no-c-format
+msgid ""
+"It is recommended to use synchronous execution first and evaluate "
+"asynchronous execution if performance problems occur and after having set up "
+"a proper benchmark (i.e. not a lonely cowboy hitting the system in a "
+"completely unrealistic way)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:195
+#, no-c-format
+msgid "Reader Strategy"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:197
+#, no-c-format
+msgid ""
+"When executing a query, Hibernate Search interacts with the Apache Lucene "
+"indexes through a reader strategy. Choosing a reader strategy will depend on "
+"the profile of the application (frequent updates, read mostly, asynchronous "
+"index update etc). See also"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:204
+#, no-c-format
+msgid "Shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:206
+#, no-c-format
+msgid ""
+"With this strategy, Hibernate Search will share the same IndexReader, for a "
+"given Lucene index, across multiple queries and threads provided that the "
+"IndexReader is still up-to-date. If the IndexReader is not up-to-date, a new "
+"one is opened and provided. Generally speaking, this strategy provides much "
+"better performances than the <literal>not-shared</literal> strategy. It is "
+"especially true if the number of updates is much lower than the reads. This "
+"strategy is the default."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:217
+#, no-c-format
+msgid "Not-shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:219
+#, no-c-format
+msgid ""
+"Every time a query is executed, a Lucene IndexReader is opened. This "
+"strategy is not the most efficient since opening and warming up an "
+"IndexReader can be a relatively expensive operation."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:225
+#, no-c-format
+msgid "Custom"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:227
+#, no-c-format
+msgid ""
+"You can write your own reader strategy that suits your application needs by "
+"implementing <classname>org.hibernate.search.reader.ReaderProvider</"
+"classname>. The implementation must be thread safe."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:233
+#, no-c-format
+msgid ""
+"Some additional strategies are planned in future versions of Hibernate Search"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Author_Group.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Author_Group.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,28 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Batch_Index.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Batch_Index.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Batch_Index.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,211 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Batch_Index.xml:6
+#, no-c-format
+msgid "Manual Indexing"
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:9
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:11
+#, no-c-format
+msgid ""
+"It is sometimes useful to index an object even if this object is not "
+"inserted nor updated to the database. This is especially true when you want "
+"to build your index for the first time. You can achieve that goal using the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.index(customer);</"
+"emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:18
+#, no-c-format
+msgid ""
+"For maximum efficiency, Hibernate Search batches index operations and "
+"executes them at commit time (Note: you don't need to use <classname>org."
+"hibernate.Transaction</classname> in a JTA environment)."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:23
+#, no-c-format
+msgid ""
+"If you expect to index a lot of data, you need to be careful about memory "
+"consumption: since all documents are kept in a queue until the transaction "
+"commit, you can potentially face an <classname>OutOfMemoryException</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:28
+#, no-c-format
+msgid ""
+"To avoid that, you can set up the <literal>hibernate.search.worker."
+"batch_size</literal> property to a sensitive value: all index operations are "
+"queued until <literal>batch_size</literal> is reached. Every time "
+"<literal>batch_size</literal> is reached (or if the transaction is "
+"committed), the queue is processed (freeing memory) and emptied. Be aware "
+"that the changes cannot be rolled-back if the number of index elements goes "
+"beyond <literal>batch_size</literal>. Be also aware that the queue limits "
+"are also applied on regular transparent indexing (and not only when "
+"<literal>session.index()</literal> is used). That's why a sensitive "
+"<literal>batch_size</literal> value is expected."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:40
+#, no-c-format
+msgid ""
+"Other parameters which also can affect indexing time and memory consumption "
+"are <literal>hibernate.search.[default|&lt;indexname&gt;].batch."
+"merge_factor</literal> , <literal>hibernate.search.[default|&lt;"
+"indexname&gt;].batch.max_merge_docs</literal> and <literal>hibernate.search."
+"[default|&lt;indexname&gt;].batch.max_buffered_docs</literal> . These "
+"parameters are Lucene specific and Hibernate Search is just passing these "
+"parameters through - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:50
+#, no-c-format
+msgid ""
+"Here is an especially efficient way to index a given class (useful for index "
+"(re)initialization):"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:53
+#, no-c-format
+msgid ""
+"fullTextSession.setFlushMode(FlushMode.MANUAL);\n"
+"                fullTextSession.setCacheMode(CacheMode.IGNORE);\n"
+"                transaction = fullTextSession.beginTransaction();\n"
+"                //Scrollable results will avoid loading too many objects in "
+"memory\n"
+"                ScrollableResults results = fullTextSession.createCriteria"
+"( Email.class ).scroll(\n"
+"                ScrollMode.FORWARD_ONLY );\n"
+"                int index = 0;\n"
+"                while( results.next() ) {\n"
+"                index++;\n"
+"                fullTextSession.index( results.get(0) ); //index each "
+"element\n"
+"                if (index % batchSize == 0) s.clear(); //clear every "
+"batchSize since the queue is processed\n"
+"                }\n"
+"                transaction.commit();"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:55
+#, no-c-format
+msgid ""
+"It is critical that <literal>batchSize</literal> in the previous example "
+"matches the <literal>batch_size</literal> value described previously."
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:61
+#, no-c-format
+msgid "Purging"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:63
+#, no-c-format
+msgid ""
+"It is equally possible to remove an entity or all entities of a given type "
+"from a Lucene index without the need to physically remove them from the "
+"database. This operation is named purging and is done through the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.purge( Customer."
+"class, customer.getId() );</emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:70
+#, no-c-format
+msgid ""
+"Purging will remove the entity with the given id from the Lucene index but "
+"will not touch the database."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:73
+#, no-c-format
+msgid ""
+"If you need to remove all entities of a given type, you can use the "
+"<command>purgeAll</command> method."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:76
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                <emphasis role=\"bold\">fullTextSession.purgeAll( Customer."
+"class );</emphasis>\n"
+"                //optionally optimize the index\n"
+"                //fullTextSession.getSearchFactory().optimize( Customer."
+"class );\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:78
+#, no-c-format
+msgid "It is recommended to optimize the index after such an operation."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:82
+#, no-c-format
+msgid ""
+"Methods <command>index</command>, <command>purge</command> and "
+"<command>purgeAll</command> are available on "
+"<classname>FullTextEntityManager</classname> as well"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Book_Info.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Book_Info.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,54 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate Search Reference Guide CP04 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "Apache <trademark>Lucene</trademark> Integration"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:8
+#, no-c-format
+msgid ""
+"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 4 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is a Reference Guide to Hibernate Search for JBoss Enterprise "
+"Application Platform 4.3.0 CP04 FP01"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:24
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:29
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Configuration.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Configuration.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Configuration.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1155 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuration.xml:6
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:9
+#, no-c-format
+msgid "Directory Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:11
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. The Directory implementation can be customized, but Lucene "
+"comes bundled with a file system (<literal>FSDirectoryProvider</literal>) "
+"and a in memory (<literal>RAMDirectoryProvider</literal>) implementation. "
+"Hibernate Search has the notion of <literal>DirectoryProvider</literal> that "
+"handles the configuration and the initialization of the Lucene Directory."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:20
+#, no-c-format
+msgid ""
+"List of built-in Directory Providers in the namespace of org.hibernate."
+"search.store."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:25
+#, no-c-format
+msgid "Class"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:27 Configuration.xml:243 Configuration.xml:528
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:29
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:35
+#, no-c-format
+msgid "FSDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:37
+#, no-c-format
+msgid ""
+"File system based directory. The directory used will be &lt;indexBase&gt;/"
+"&lt; <literal>@Indexed.name</literal> &gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:41
+#, no-c-format
+msgid "<literal>indexBase</literal> : Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:42 Configuration.xml:60 Configuration.xml:85
+#, no-c-format
+msgid ""
+"<literal>indexName</literal>: override @Index.name (useful for sharded "
+"indexes)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:47
+#, no-c-format
+msgid "FSMasterDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:49
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider. It also copies the "
+"index to a source directory (aka copy directory) on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:52 Configuration.xml:77
+#, no-c-format
+msgid ""
+"The recommended value for the refresh period is (at least) 50% higher that "
+"the time to copy the information (default 3600 seconds - 60 minutes)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:53 Configuration.xml:79
+#, no-c-format
+msgid ""
+"Note that the copy is based on an incremental copy mechanism reducing the "
+"average copy time."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:55
+#, no-c-format
+msgid ""
+"DirectoryProvider typically used on the master node in a JMS back end "
+"cluster."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:56
+#, no-c-format
+msgid ""
+"<entry>DirectoryProvider typically used on slave nodes using a JMS back end."
+"</entry>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:59 Configuration.xml:84
+#, no-c-format
+msgid "<literal>indexBase</literal>: Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:62 Configuration.xml:87
+#, no-c-format
+msgid "<literal>sourceBase</literal>: Source (copy) base directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:63 Configuration.xml:88
+#, no-c-format
+msgid ""
+"<literal>source</literal>: Source directory suffix (default to "
+"<literal>@Indexed.name</literal>). The actual source directory name being "
+"<filename>&lt;sourceBase&gt;/&lt;source&gt;</filename>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:67 Configuration.xml:92
+#, no-c-format
+msgid ""
+"refresh: refresh period in second (the copy will take place every refresh "
+"seconds)."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:72
+#, no-c-format
+msgid "FSSlaveDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:74
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider, but retrieves a "
+"master version (source) on a regular basis. To avoid locking and "
+"inconsistent search results, 2 local copies are kept."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:81
+#, no-c-format
+msgid ""
+"<para>DirectoryProvider typically used on slave nodes using a JMS back end.</"
+"para>"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:97
+#, no-c-format
+msgid "RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:99
+#, no-c-format
+msgid ""
+"Memory based directory, the directory will be uniquely identified (in the "
+"same deployment unit) by the <literal>@Indexed.name</literal> element"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:103
+#, no-c-format
+msgid "none"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:109
+#, no-c-format
+msgid ""
+"If the built-in directory providers does not fit your needs, you can write "
+"your own directory provider by implementing the <classname>org.hibernate."
+"store.DirectoryProvider</classname> interface"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:114
+#, no-c-format
+msgid ""
+"Each indexed entity is associated to a Lucene index (an index can be shared "
+"by several entities but this is not usually the case). You can configure the "
+"index through properties prefixed by <command>hibernate.search.</"
+"command><replaceable>indexname</replaceable> . Default properties inherited "
+"to all indexes can be defined using the prefix <command>hibernate.search."
+"default.</command>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:121
+#, no-c-format
+msgid ""
+"To define the directory provider of a given index, you use the property "
+"<literal>hibernate.search.<replaceable>indexname</replaceable>."
+"directory_provider </literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:125
+#, no-c-format
+msgid ""
+"hibernate.search.default.directory_provider  org.hibernate.search.store."
+"FSDirectoryProvider\n"
+"                        hibernate.search.default.indexBase=/usr/lucene/"
+"indexes\n"
+"                        \n"
+"                        hibernate.search.Rules.directory_provider  org."
+"hibernate.search.store.RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:127
+#, no-c-format
+msgid "applied on"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:129
+#, no-c-format
+msgid ""
+"@Indexed(name=\"Status\")\n"
+"public class Status { ... }\n"
+"                        \n"
+"@Indexed(name=\"Rules\")\n"
+"public class Rule { ... }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:131
+#, no-c-format
+msgid ""
+"will create a file system directory in <filename>/usr/lucene/indexes/Status</"
+"filename> where the Status entities will be indexed, and use an in memory "
+"directory named <literal>Rules</literal> where Rule entities will be indexed."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:136
+#, no-c-format
+msgid ""
+"You can easily define common rules like the directory provider and base "
+"directory, and override those default later on on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:140
+#, no-c-format
+msgid ""
+"Writing your own <classname>DirectoryProvider</classname>, you can utilize "
+"this configuration mechanism as well."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:145
+#, no-c-format
+msgid "Index Sharding"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:147
+#, no-c-format
+msgid ""
+"In some extreme cases involving huge indexes (in size), it is necessary to "
+"split (shard) the indexing data of a given entity type into several Lucene "
+"indexes. This solution is not recommended until you reach significant index "
+"sizes and index update time are slowing down. The main drawback of index "
+"sharding is that searches will end up being slower since more files have to "
+"be opened for a single search. In other words don't do it until you have "
+"problems :)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:155
+#, no-c-format
+msgid ""
+"Despite this strong warning, Hibernate Search allows you to index a given "
+"entity type into several sub indexes. Data is sharded into the different sub "
+"indexes thanks to an <classname>IndexShardingStrategy</classname>. By "
+"default, no sharding strategy is enabled, unless the number of shards is "
+"configured. To configure the number of shards use the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:162
+#, no-c-format
+msgid "hibernate.search.&lt;indexName&gt;.sharding_strategy.nbr_of_shards 5"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:164
+#, no-c-format
+msgid "This will use 5 different shards."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:166
+#, no-c-format
+msgid ""
+"The default sharding strategy, when shards are set up, splits the data "
+"according to the hash value of the id string representation (generated by "
+"the Field Bridge). This ensures a fairly balanced sharding. You can replace "
+"the strategy by implementing <literal>IndexShardingStrategy</literal> and by "
+"setting the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:173
+#, no-c-format
+msgid ""
+"hibernate.search.&lt;indexName&gt;.sharding_strategy my.shardingstrategy."
+"Implementation"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:175
+#, no-c-format
+msgid ""
+"Each shard has an independent directory provider configuration as described "
+"in <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>. The "
+"DirectoryProvider default name for the previous example are <literal>&lt;"
+"indexName&gt;.0</literal> to <literal>&lt;indexName&gt;.4</literal>. In "
+"other words, each shard has the name of it's owning index followed by "
+"<command>.</command> (dot) and its index number."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:183
+#, no-c-format
+msgid ""
+"hibernate.search.default.indexBase /usr/lucene/indexes\n"
+"                        \n"
+"                        hibernate.search.Animal.sharding_strategy."
+"nbr_of_shards 5\n"
+"                        hibernate.search.Animal.directory_provider org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        hibernate.search.Animal.0.indexName Animal00\n"
+"                        hibernate.search.Animal.3.indexBase /usr/lucene/"
+"sharded\n"
+"                        hibernate.search.Animal.3.indexName Animal03"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:185
+#, no-c-format
+msgid ""
+"This configuration uses the default id string hashing strategy and shards "
+"the Animal index into 5 sub-indexes. All sub-indexes are FSDirectoryProvider "
+"instances and the directory where each sub-index is stored is as followed:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:192
+#, no-c-format
+msgid ""
+"for subindex 0: /usr/lucene/indexes/Animal00 (shared indexBase but "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:197
+#, no-c-format
+msgid ""
+"for subindex 1: /usr/lucene/indexes/Animal.1 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:202
+#, no-c-format
+msgid ""
+"for subindex 2: /usr/lucene/indexes/Animal.2 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:207
+#, no-c-format
+msgid ""
+"for subindex 3: /usr/lucene/shared/Animal03 (overridden indexBase, "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:212
+#, no-c-format
+msgid ""
+"for subindex 4: /usr/lucene/indexes/Animal.4 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:219
+#, no-c-format
+msgid "Worker Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:221
+#, no-c-format
+msgid ""
+"It is possible to refine how Hibernate Search interacts with Lucene through "
+"the worker configuration. The work can be executed to the Lucene directory "
+"or sent to a JMS queue for later processing. When processed to the Lucene "
+"directory, the work can be processed synchronously or asynchronously to the "
+"transaction commit."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:227
+#, no-c-format
+msgid "You can define the worker configuration using the following properties"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:231
+#, no-c-format
+msgid "Worker Configuration (in the namespace of hibernate.worker)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:241 Configuration.xml:526
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:247
+#, no-c-format
+msgid "backend"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:249
+#, no-c-format
+msgid ""
+"Out of the box support for the Apache Lucene back end and the JMS back end. "
+"Default to <literal>lucene</literal>. Supports also <literal>jms</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:255
+#, no-c-format
+msgid "execution"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:257
+#, no-c-format
+msgid ""
+"Supports synchronous and asynchrounous execution. Default to "
+"<literal><literal>sync</literal></literal>. Supports also <literal>async</"
+"literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:263
+#, no-c-format
+msgid "thread_pool.size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:265
+#, no-c-format
+msgid ""
+"Defines the number of threads in the pool. useful only for asynchrounous "
+"execution. Default to 1."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:270
+#, no-c-format
+msgid "buffer_queue.max"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:272
+#, no-c-format
+msgid ""
+"Defines the maximal number of work queue if the thread poll is starved. "
+"Useful only for asynchrounous execution. Default to infinite. If the limit "
+"is reached, the work is done by the main thread."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:279
+#, no-c-format
+msgid "jndi.*"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:281
+#, no-c-format
+msgid ""
+"Defines the JNDI properties to initiate the InitialContext (if needed). JNDI "
+"is only used by the JMS back end."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:286
+#, no-c-format
+msgid "jms.connection_factory"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:289
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"connection factory from (<literal>java:/ConnectionFactory</literal> by "
+"default in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:296
+#, no-c-format
+msgid "jms.queue"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:298
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"queue from. The queue will be used to post work messages."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:304
+#, no-c-format
+msgid "batch_size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:306
+#, no-c-format
+msgid ""
+"Defines the maximum number of elements indexed before flushing the "
+"transaction-bound queue. Default to 0 (i.e. no limit). See <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:317
+#, no-c-format
+msgid "JMS Master/Slave Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:319
+#, no-c-format
+msgid ""
+"This section describes in greater detail how to configure the Master / "
+"Slaves Hibernate Search architecture."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:323
+#, no-c-format
+msgid "Slave Nodes"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:325
+#, no-c-format
+msgid ""
+"Every index update operation is sent to a JMS queue. Index querying "
+"operations are executed on a local index copy."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:328
+#, no-c-format
+msgid ""
+"### slave configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local copy location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSSlaveDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                hibernate.search.worker.backend = jms\n"
+"                                hibernate.search.worker.jms."
+"connection_factory = java:/ConnectionFactory\n"
+"                                hibernate.search.worker.jms.queue = queue/"
+"hibernatesearch\n"
+"                                #optional jndi configuration (check your JMS "
+"provider for more information)\n"
+"                                \n"
+"                                ## Optional asynchronous execution strategy\n"
+"                                # org.hibernate.worker.execution = async\n"
+"                                # org.hibernate.worker.thread_pool.size = 2\n"
+"                                # org.hibernate.worker.buffer_queue.max = 50"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:330
+#, no-c-format
+msgid "A file system local copy is recommended for faster search results."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:333 Configuration.xml:345
+#, no-c-format
+msgid "The refresh period should be higher that the expected time copy."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:338
+#, no-c-format
+msgid "Master node"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:340
+#, no-c-format
+msgid ""
+"Every index update operation is taken from a JMS queue and executed. The "
+"master index(es) is(are) copied on a regular basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:343
+#, no-c-format
+msgid ""
+"### master configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location where information "
+"is copied to\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local master location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSMasterDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                #Backend is the default lucene one"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:348
+#, no-c-format
+msgid ""
+"In addition to the Hibernate Search framework configuration, a Message "
+"Driven Bean should be written and set up to process index works queue "
+"through JMS."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:352
+#, no-c-format
+msgid ""
+"@MessageDriven(activationConfig = {\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destinationType\", propertyValue=\"javax.jms.Queue\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destination\", propertyValue=\"queue/hiebrnatesearch\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"DLQMaxResent\", propertyValue=\"1\")\n"
+"                                } )\n"
+"                                public class MDBSearchController extends "
+"AbstractJMSHibernateSearchController implements MessageListener {\n"
+"                                @PersistenceContext EntityManager em;\n"
+"                                \n"
+"                                //method retrieving the appropriate session\n"
+"                                protected Session getSession() {\n"
+"                                return (Session) em.getDelegate();\n"
+"                                }\n"
+"                                \n"
+"                                //potentially close the session opened in "
+"#getSession(), not needed here\n"
+"                                protected void cleanSessionIfNeeded(Session "
+"session) \n"
+"                                }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:354
+#, no-c-format
+msgid ""
+"This example inherit the abstract JMS controller class available and "
+"implements a JavaEE 5 MDB. This implementation is given as an example and, "
+"while most likely more complex, can be adjusted to make use of non Java EE "
+"Message Driven Beans. For more information about the <command>getSession()</"
+"command> and <command>cleanSessionIfNeeded()</command>, please check "
+"<classname>AbstractJMSHibernateSearchController</classname>'s javadoc."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:364
+#, no-c-format
+msgid ""
+"Hibernate Search test suite makes use of JBoss Embedded to test the JMS "
+"integration. It allows the unit test to run both the MDB container and JBoss "
+"Messaging (JMS provider) in a standalone way (marketed by some as "
+"\"lightweight\")."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:373
+#, no-c-format
+msgid "Reader Strategy Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:375
+#, no-c-format
+msgid ""
+"The different reader strategies are described in <xref linkend="
+"\"Hibernate_Search-Architecture-Reader_Strategy\"/>. The default reader "
+"strategy is <literal>shared</literal>. This can be adjusted:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:378
+#, no-c-format
+msgid "hibernate.search.reader.strategy = not-shared"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:380
+#, no-c-format
+msgid ""
+"Adding this property switch to the <literal>non shared</literal> strategy."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:383
+#, no-c-format
+msgid "Or if you have a custom reader strategy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:385
+#, no-c-format
+msgid "hibernate.search.reader.strategy = my.corp.myapp.CustomReaderProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:387
+#, no-c-format
+msgid ""
+"where <classname>my.corp.myapp.CustomReaderProvider</classname> is the "
+"custom strategy implementation"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:392
+#, no-c-format
+msgid "Enabling Hibernate Search and automatic indexing"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:395
+#, no-c-format
+msgid "Enabling Hibernate Search"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:397
+#, no-c-format
+msgid ""
+"Hibernate Search is enabled out of the box when using Hibernate Annotations "
+"or Hibernate EntityManager. If, for some reason you need to disable it, set "
+"<literal>hibernate.search.autoregister_listeners</literal> to false. Note "
+"that there is no performance runtime when the listeners are enabled while no "
+"entity is indexable."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:404
+#, no-c-format
+msgid ""
+"To enable Hibernate Search in Hibernate Core, add the "
+"<literal>FullTextIndexEventListener</literal> for the three Hibernate events "
+"that occur after changes are executed to the database. Once again, such a "
+"configuration is not useful with Hibernate Annotations or Hibernate "
+"EntityManager."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:410
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                &lt;session-factory&gt;\n"
+"                                ...\n"
+"                                &lt;event type=\"post-update\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-insert\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-delete\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;/session-factory&gt;\n"
+"                                &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:412
+#, no-c-format
+msgid ""
+"Be sure to add the appropriate jar files in your classpath. Check "
+"<literal>lib/README.TXT</literal> for the list of third party libraries. A "
+"typical installation on top of Hibernate Annotations will add:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:418
+#, no-c-format
+msgid "<filename>hibernate-search.jar</filename>: the core engine"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:423
+#, no-c-format
+msgid "<filename>lucene-core-*.jar</filename>: Lucene core engine"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:429
+#, no-c-format
+msgid "Hibernate Core 3.2.6 and beyond"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:431
+#, no-c-format
+msgid ""
+"If you use Hibernate Core 3.2.6 and beyond, make sure to add three "
+"additional event listeners that cope with collection events"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:435
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                        &lt;session-factory&gt;\n"
+"                                        ...\n"
+"                                        &lt;event type=\"post-collection-"
+"recreate\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"remove\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"update\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;/session-factory&gt;\n"
+"                                        &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:437
+#, no-c-format
+msgid ""
+"Those additional event listeners have been introduced in Hibernate 3.2.6. "
+"note the <classname>FullTextIndexCollectionEventListener</classname> usage. "
+"You need to explicitly reference those event listeners unless you use "
+"Hibernate Annotations 3.3.1 and above."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:446
+#, no-c-format
+msgid "Automatic indexing"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:448
+#, no-c-format
+msgid ""
+"By default, every time an object is inserted, updated or deleted through "
+"Hibernate, Hibernate Search updates the according Lucene index. It is "
+"sometimes desirable to disable that features if either your index is read-"
+"only or if index updates are done in a batch way (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:453
+#, no-c-format
+msgid "To disable event based indexing, set"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:455
+#, no-c-format
+msgid "hibernate.search.indexing_strategy manual"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:458
+#, no-c-format
+msgid ""
+"In most case, the JMS backend provides the best of both world, a lightweight "
+"event based system keeps track of all changes in the system, and the "
+"heavyweight indexing process is done by a separate process or machine."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:467
+#, no-c-format
+msgid "Tuning Lucene indexing performance"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:469
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to tune the Lucene indexing performance by "
+"specifying a set of parameters which are passed through to underlying Lucene "
+"<literal>IndexWriter</literal> such as <literal>mergeFactor</literal>, "
+"<literal>maxMergeDocs</literal> and <literal>maxBufferedDocs</literal>. You "
+"can specify these parameters either as default values applying for all "
+"indexes or on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:477
+#, no-c-format
+msgid ""
+"There are two sets of parameters allowing for different performance settings "
+"depending on the use case. During indexing operations triggered by database "
+"modifications, the following ones are used: <itemizedlist> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"merge_factor</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_merge_docs</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_buffered_docs</literal></para> </listitem> </itemizedlist>When indexing "
+"occurs via <literal>FullTextSession.index()</literal> (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>), the following properties are used:"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:495
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.merge_factor"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:499
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:503
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:507
+#, no-c-format
+msgid ""
+"Unless the corresponding <literal>.batch</literal> property is explicitly "
+"set, the value will default to the <literal>.transaction</literal> property."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:511
+#, no-c-format
+msgid ""
+"For more information about Lucene indexing performances, please refer to the "
+"Lucene documentation."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:515
+#, no-c-format
+msgid ""
+"List of indexing performance properties in the namespace of hibernate.search."
+"[default|&lt;indexname&gt;]"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:530
+#, no-c-format
+msgid "Default Value"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:536
+#, no-c-format
+msgid "transaction.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:538 Configuration.xml:578
+#, no-c-format
+msgid "Controls segment merge frequency and size."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:539 Configuration.xml:579
+#, no-c-format
+msgid ""
+"Determines how often segment indices are merged when insertion occurs. With "
+"smaller values, less RAM is used while indexing, and searches on unoptimized "
+"indices are faster, but indexing speed is slower. With larger values, more "
+"RAM is used during indexing, and while searches on unoptimized indices are "
+"slower, indexing is faster. Thus larger values (&gt; 10) are best for batch "
+"index creation, and smaller values (&lt; 10) for indices that are "
+"interactively maintained. The value must no be lower than 2."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:547 Configuration.xml:557 Configuration.xml:569
+#, no-c-format
+msgid ""
+"Used by Hibernate Search during index update operations as part of database "
+"modifications."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:550 Configuration.xml:572 Configuration.xml:590
+#: Configuration.xml:611
+#, no-c-format
+msgid "<entry>10</entry>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:554
+#, no-c-format
+msgid "transaction.max_merge_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:556 Configuration.xml:596
+#, no-c-format
+msgid "Defines the largest number of documents allowed in a segment."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:560 Configuration.xml:600
+#, no-c-format
+msgid "Unlimited (Integer.MAX_VALUE)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:564
+#, no-c-format
+msgid "transaction. max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:567 Configuration.xml:606
+#, no-c-format
+msgid ""
+"Controls the amount of documents buffered in memory during indexing. The "
+"bigger the more RAM is consumed."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:576
+#, no-c-format
+msgid "batch.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:587 Configuration.xml:597 Configuration.xml:608
+#, no-c-format
+msgid "Used during indexing via <literal>FullTextSession.index()</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:594
+#, no-c-format
+msgid "batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:604
+#, no-c-format
+msgid "batch.max_buffered_docs"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Feedback.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Feedback.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Feedback.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,34 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Getting_Started.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Getting_Started.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Getting_Started.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,606 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"Welcome to Hibernate Search! The following chapter will guide you through "
+"the initial steps required to integrate Hibernate Search into an existing "
+"Hibernate enabled application. In case you are a Hibernate first timer we "
+"recommend you start <ulink url=\"http://hibernate.org/152.html\">here</"
+"ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "System Requirements"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:18
+#, no-c-format
+msgid "System requirements"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:23
+#, no-c-format
+msgid "Java Runtime"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:25
+#, no-c-format
+msgid ""
+"A JDK or JRE version <emphasis>5</emphasis> or greater. You can download a "
+"Java Runtime for Windows/Linux/Solaris <ulink url=\"http://java.sun.com/"
+"javase/downloads/\"> here </ulink>."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:31
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"<literal>hibernate-search.jar</literal> and all dependencies from the "
+"<literal>lib</literal> directory of the Hibernate Search distribution, "
+"especially lucene."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:39
+#, no-c-format
+msgid "Hibernate Core"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:41
+#, no-c-format
+msgid ""
+"These instructions have been tested against Hibernate 3.2.x. Next to the "
+"main <literal>hibernate3.jar</literal> you will need all required libraries "
+"from the <literal>lib</literal> directory of the distribution. Refer to "
+"<literal>README.txt</literal> in the <literal>lib</literal> directory of the "
+"distribution to determine the minimum runtime requirements."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:50
+#, no-c-format
+msgid "Hibernate Annotations"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:52
+#, no-c-format
+msgid ""
+"Although Hibernate Search can be used without Hibernate Annotations the "
+"following instructions use them for ease of use. The tutorial is tested "
+"against version 3.3.x of Hibernate Annotations."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:60
+#, no-c-format
+msgid ""
+"You can download all dependencies from the Hibernate <ulink url=\"http://www."
+"hibernate.org/6.html\">download site</ulink>. You can also verify the "
+"dependency versions against the <ulink url=\"http://www.hibernate.org/6."
+"html#A3\">Hibernate Compatibility Matrix</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:65
+#, no-c-format
+msgid "Maven"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:67
+#, no-c-format
+msgid ""
+"Instead of managing all dependencies yourself, maven users are able to use "
+"the <ulink url=\"http://repository.jboss.com/maven2\">JBoss maven "
+"repository</ulink>. Just add the JBoss repository url to the "
+"<emphasis>repositories</emphasis> section of your <filename>pom.xml</"
+"filename> or <filename>settings.xml</filename>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:73
+#, no-c-format
+msgid ""
+"&lt;repository&gt;\n"
+"                           &lt;id&gt;repository.jboss.org&lt;/id&gt;\n"
+"                        &lt;name&gt;JBoss Maven Repository&lt;/name&gt;\n"
+"                        &lt;url&gt;http://repository.jboss.org/maven2&lt;/"
+"url&gt;\n"
+"                        &lt;layout&gt;default&lt;/layout&gt;\n"
+"                        &lt;/repository&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:75
+#, no-c-format
+msgid "Then add the following dependencies to your pom.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:77
+#, no-c-format
+msgid ""
+"&lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-search&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.0.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-annotations&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-entitymanager&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.1.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:79
+#, no-c-format
+msgid ""
+"Not all three dependencies are required. <emphasis>hibernate-search</"
+"emphasis> alone contains everything needed to use Hibernate Search. "
+"<emphasis>hibernate-annotations</emphasis> is only needed if you use non-"
+"Hibernate Search annotations, which are used in the examples of this "
+"tutorial. Note that <emphasis>hibernate-entitymanager</emphasis> is only "
+"required if you use Hibernate Search in conjunction with JPA."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:87
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:89
+#, no-c-format
+msgid ""
+"Once all required dependencies have been downloaded and added to your "
+"application, you will need to add some properties to your hibernate "
+"configuration file. If you are using Hibernate directly this can be done in "
+"<literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</"
+"literal>. If you are using Hibernate via JPA you can also add the properties "
+"to <literal>persistence.xml</literal>. The default properties are suitable "
+"for the standard use."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:92
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. Hibernate Search handles the initialization and configuration "
+"of a Lucene <literal>Directory</literal> instance via a "
+"<literal>DirectoryProvider</literal>. In this tutorial we will use a "
+"subclass of <literal>DirectoryProvider</literal> called "
+"<classname>FSDirectoryProvider</classname>. This will give us the ability to "
+"physically inspect the Lucene indexes created by Hibernate Search (e.g. via "
+"<ulink url=\"http://www.getopt.org/luke/\">Luke</ulink>). Once you have a "
+"working configuration you can start experimenting with other directory "
+"providers (see <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:103
+#, no-c-format
+msgid ""
+"Lets assume that your application contains the Hibernate managed class "
+"<classname>example.Book</classname> and you now want to add free text search "
+"capabilities to your application in order to search body and summary of the "
+"books contained in your database."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:108
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        private Integer id; \n"
+"                        private String body;  \n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:110
+#, no-c-format
+msgid ""
+"First you need to tell Hibernate Search which <classname>DirectoryProvider</"
+"classname> to use. This can be achieved by setting the <literal>hibernate."
+"search.default.directory_provider</literal> property. You also have to "
+"specify the default root directory for all indexes via <literal>hibernate."
+"search.default.indexBase</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:116
+#, no-c-format
+msgid ""
+"...\n"
+"                        # the default directory provider\n"
+"                        hibernate.search.default.directory_provider = org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        \n"
+"                        # the default base directory for the indecies\n"
+"                        hibernate.search.default.indexBase = /var/lucene/"
+"indexes    \n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:118
+#, no-c-format
+msgid ""
+"Now add three annotations to the <classname>Book</classname> class. The "
+"first annotation <literal>@Indexed</literal> marks <classname>Book</"
+"classname> as indexable. By design Hibernate Search needs to store an "
+"untokenized id in the index to ensure index unicity for a given entity. "
+"<literal>@DocumentId</literal> marks the property to use for this purpose. "
+"Most, if not all of the time, the property is the database primary key. "
+"Finally you will need to index the fields you wish to make searchable. In "
+"our example these fields are <literal>body</literal> and <literal>summary</"
+"literal>. Both properties get annotated with <literal>@Field</literal>. The "
+"property <literal>index=Index.TOKENIZED</literal> will ensure that the text "
+"will be tokenized using the default Lucene analyzer whereas "
+"<literal>store=Store.NO</literal> ensures that the actual data will not be "
+"stored in the index. Usually, tokenizing means chunking a sentence into "
+"individual words (and potentially excluding common words like <literal>a</"
+"literal>, <literal>the </literal>etc)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:135
+#, no-c-format
+msgid ""
+"These settings are sufficient for an initial test. For more details on "
+"entity mapping refer to <xref linkend=\"Hibernate_Search-Mapping-Entity\"/>. "
+"In case you want to store and retrieve the indexed data in order to avoid "
+"database roundtrips, refer to projections in"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:140
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        <emphasis role=\"bold\">@Indexed</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        <emphasis role=\"bold\">@DocumentId</emphasis>\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String body;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:144
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:146
+#, no-c-format
+msgid ""
+"Hibernate Search will index every entity persisted, updated or removed "
+"through Hibernate core transparently for the application. However, the data "
+"already present in your database needs to be indexed once to populate the "
+"Lucene index. Once you have added the above properties and annotations it is "
+"time to trigger an initial batch index of your books. You can achieve this "
+"by adding one of the following code examples to your code (see also <xref "
+"linkend=\"Hibernate_Search-Batch_Index\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:154 Getting_Started.xml:176
+#, no-c-format
+msgid "Example using Hibernate Session:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:156
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        List books = session.createQuery(\"from Book as book"
+"\").list();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextSession.index(book);\n"
+"                        }\n"
+"                        tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:158 Getting_Started.xml:180
+#, no-c-format
+msgid "Example using JPA:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:160
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        FullTextEntityManager fullTextEntityManager = Search."
+"createFullTextEntityManager(em);\n"
+"                        List books = em.createQuery(\"select book from Book "
+"as book\").getResultList();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextEntityManager.index(book);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:162
+#, no-c-format
+msgid ""
+"After executing the above code, you should be able to see a Lucene index "
+"under <literal>/var/lucene/indexes/example.Book</literal>. Go ahead an "
+"inspect this index. It will help you to understand how Hibernate Search "
+"works."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:169
+#, no-c-format
+msgid "Searching"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:171
+#, no-c-format
+msgid ""
+"Now it is time to execute a first search. The following code will prepare a "
+"query against the fields <literal>summary</literal> and <literal>body</"
+"literal>, execute it and return a list of <classname>Book</classname>s:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:178
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        \n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        \n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextSession."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();\n"
+"                        \n"
+"                        tx.commit();\n"
+"                        session.close();"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:182
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        \n"
+"                        FullTextEntityManager fullTextEntityManager = \n"
+"                        org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextEntityManager."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:186
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:188
+#, no-c-format
+msgid ""
+"Assume that one of your indexed book entities contains the text \"Java rocks"
+"\" and you want to get hits for all of the following queries: \"rock\", "
+"\"rocks\", \"rocked\" and \"rocking\". In Lucene this can be achieved by "
+"choosing an analyzer class which applies word stemming during the indexing "
+"process. Hibernate Search offers several ways to configure the analyzer to "
+"use (see <xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:197
+#, no-c-format
+msgid ""
+"Setting the <literal>hibernate.search.analyzer</literal> property in the "
+"configuration file. The specified class will then be the default analyzer."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:203
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the entity level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:208
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the field level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:213
+#, no-c-format
+msgid ""
+"The following example uses the entity level annotation to apply a English "
+"language analyzer which would help you to achieve your goal. The class "
+"<classname>EnglishAnalyzer</classname> is a custom class using the Snowball "
+"English Stemmer from the <ulink url=\"http://lucene.apache.org/java/docs/"
+"lucene-sandbox/\">Lucene Sandbox</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:220
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        @Indexed\n"
+"                        <emphasis role=\"bold\">@Analyzer(impl = example."
+"EnglishAnalyzer.class)</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        @DocumentId\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String body;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ... \n"
+"                        }\n"
+"                        \n"
+"                        public class EnglishAnalyzer extends Analyzer {\n"
+"                        /**\n"
+"                        * {@inheritDoc}\n"
+"                        */\n"
+"                        @Override\n"
+"                        public TokenStream tokenStream(String fieldName, "
+"Reader reader) {\n"
+"                        TokenStream result = new StandardTokenizer(reader);\n"
+"                        result = new StandardFilter(result);\n"
+"                        result = new LowerCaseFilter(result);\n"
+"                        result = new SnowballFilter(result, name);\n"
+"                        return result;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:224
+#, no-c-format
+msgid "What's next"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:226
+#, no-c-format
+msgid ""
+"The above paragraphs hopefully helped you getting started with Hibernate "
+"Search. You should by now have a file system based index and be able to "
+"search and retrieve a list of managed objects via Hibernate Search. The next "
+"step is to get more familiar with the overall architecture (<xref linkend="
+"\"Hibernate_Search-Architecture\"/>) and explore the basic features in more "
+"detail."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:233
+#, no-c-format
+msgid ""
+"Two topics which where only briefly touched in this tutorial were analyzer "
+"configuration (<xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>) and "
+"field bridges (<xref linkend=\"Hibernate_Search-Mapping-Bridge\"/>), both "
+"important features required for more fine-grained indexing."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:238
+#, no-c-format
+msgid ""
+"More advanced topics cover clustering (<xref linkend=\"Hibernate_Search-"
+"Configuration-JMS_Backend\"/>) and large indexes handling (<xref linkend="
+"\"Hibernate_Search-Configuration-Index_Sharding\"/>)."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Hibernate_Search_Reference_Guide_CP04_FP01.po
===================================================================

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Introduction.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Introduction.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,44 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:8
+#, no-c-format
+msgid ""
+"Full text search engines like <productname>Apache Lucene</productname> are "
+"powerful technologies that add efficient free text search capabilities to "
+"applications. However, they suffer several mismatches when dealing with "
+"object domain models. Amongst other things, indexes have to be kept up to "
+"date and mismatches between index structure and domain model as well as "
+"query mismatches need to be avoided."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Hibernate Search indexes your domain model with the help of a few "
+"annotations, takes care of database/index synchronization and brings back "
+"regular managed objects from free text queries. To achieve this Hibernate "
+"Search combines the power of <ulink url=\"http://www.hibernate.org"
+"\">Hibernate</ulink> and <ulink url=\"http://lucene.apache.org\">Apache "
+"Lucene</ulink>."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Lucene_Native.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Lucene_Native.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Lucene_Native.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,161 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Lucene_Native.xml:6
+#, no-c-format
+msgid "Accessing Lucene natively"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:9
+#, no-c-format
+msgid "SearchFactory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:11
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> object keeps track of the "
+"underlying Lucene resources for Hibernate Search, it's also a convenient way "
+"to access Lucene natively. The <classname>SearchFactory</classname> can be "
+"accessed from a <classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:20
+#, no-c-format
+msgid "Accessing a Lucene Directory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:22
+#, no-c-format
+msgid ""
+"You can always access the Lucene directories through plain Lucene, the "
+"Directory structure is in no way different with or without Hibernate Search. "
+"However there are some more convenient ways to access a given Directory. The "
+"<classname>SearchFactory</classname> keeps track of the "
+"<classname>DirectoryProvider</classname>s per indexed class. One directory "
+"provider can be shared amongst several indexed classes if the classes share "
+"the same underlying index directory. While usually not the case, a given "
+"entity can have several <classname>DirectoryProvider</classname>s is the "
+"index is sharded (see <xref linkend=\"Hibernate_Search-Configuration-"
+"Index_Sharding\"/>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:32
+#, no-c-format
+msgid ""
+"DirectoryProvider[] provider = searchFactory.getDirectoryProviders(Order."
+"class);\n"
+"                        org.apache.lucene.store.Directory directory = "
+"provider[0].getDirectory();"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:34
+#, no-c-format
+msgid ""
+"In this example, directory points to the lucene index storing "
+"<classname>Order</classname>s information. Note that the obtained Lucene "
+"directory must not be closed (this is Hibernate Search responsibility)."
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:41
+#, no-c-format
+msgid "Using an IndexReader"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:43
+#, no-c-format
+msgid ""
+"Queries in Lucene are executed on an <literal>IndexReader</literal>. "
+"Hibernate Search caches such index readers to maximize performances. Your "
+"code can access such cached / shared resources. You will just have to follow "
+"some \"good citizen\" rules."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:48
+#, no-c-format
+msgid ""
+"DirectoryProvider orderProvider = searchFactory.getDirectoryProviders(Order."
+"class)[0];\n"
+"                        DirectoryProvider clientProvider = searchFactory."
+"getDirectoryProviders(Client.class)[0];\n"
+"                        \n"
+"                        ReaderProvider readerProvider = searchFactory."
+"getReaderProvider();\n"
+"                        IndexReader reader = readerProvider.openReader"
+"(orderProvider, clientProvider);\n"
+"                        \n"
+"                        try {\n"
+"                        //do read-only operations on the reader\n"
+"                        }\n"
+"                        finally {\n"
+"                        readerProvider.closeReader(reader);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:50
+#, no-c-format
+msgid ""
+"The ReaderProvider (described in <xref linkend=\"Hibernate_Search-"
+"Architecture-Reader_Strategy\"/>), will open an IndexReader on top of the "
+"index(es) referenced by the directory providers. This IndexReader being "
+"shared amongst several clients, you must adhere to the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:57
+#, no-c-format
+msgid ""
+"Never call indexReader.close(), but always call readerProvider.closeReader"
+"(reader); (a finally block is the best area)."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:63
+#, no-c-format
+msgid ""
+"This indexReader must not be used for modification operations (especially "
+"delete), if you want to use an read/write index reader, open one from the "
+"Lucene Directory object."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:69
+#, no-c-format
+msgid ""
+"Aside from those rules, you can use the IndexReader freely, especially to do "
+"native queries. Using the shared <literal>IndexReader</literal>s will make "
+"most queries more efficient."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Mapping.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Mapping.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Mapping.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1284 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Mapping.xml:6
+#, no-c-format
+msgid "Mapping Entities to the Index Structure"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:8
+#, no-c-format
+msgid ""
+"All the metadata information needed to index entities is described through "
+"some Java annotations. There is no need for xml mapping files nor a list of "
+"indexed entities. The list is discovered at startup by scanning the "
+"Hibernate mapped entities."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:14
+#, no-c-format
+msgid "Mapping an entity"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:17
+#, no-c-format
+msgid "Basic mapping"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:19
+#, no-c-format
+msgid ""
+"First, we must declare a persistent class as indexable. This is done by "
+"annotating the class with <literal>@Indexed</literal> (all entities not "
+"annotated with <literal>@Indexed</literal> will be ignored by the indexing "
+"process):"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:24
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                <emphasis role=\"bold\">@Indexed(index="
+"\"indexes/essays\")</emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:26
+#, no-c-format
+msgid ""
+"The <literal>index</literal> attribute tells Hibernate what the Lucene "
+"directory name is (usually a directory on your file system). If you wish to "
+"define a base directory for all Lucene indexes, you can use the "
+"<literal>hibernate.search.default.indexBase</literal> property in your "
+"configuration file. Each entity instance will be represented by a Lucene "
+"<classname>Document</classname> inside the given index (aka Directory)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:34
+#, no-c-format
+msgid ""
+"For each property (or attribute) of your entity, you have the ability to "
+"describe how it will be indexed. The default (i.e. no annotation) means that "
+"the property is completely ignored by the indexing process. <literal>@Field</"
+"literal> does declare a property as indexed. When indexing an element to a "
+"Lucene document you can specify how it is indexed:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:43
+#, no-c-format
+msgid ""
+"<literal>name</literal> : describe under which name, the property should be "
+"stored in the Lucene Document. The default value is the property name "
+"(following the JavaBeans convention)"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:49
+#, no-c-format
+msgid ""
+"<literal>store</literal> : describe whether or not the property is stored in "
+"the Lucene index. You can store the value <literal>Store.YES</literal> "
+"(consuming more space in the index but allowing projection, see <xref "
+"linkend=\"Hibernate_Search-Query-Projections\"/> for more information), "
+"store it in a compressed way <literal>Store.COMPRESS</literal> (this does "
+"consume more CPU), or avoid any storage <literal>Store.NO</literal> (this is "
+"the default value). When a property is stored, you can retrieve it from the "
+"Lucene Document (note that this is not related to whether the element is "
+"indexed or not)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:62
+#, no-c-format
+msgid ""
+"index: describe how the element is indexed (i.e. the process used to index "
+"the property and the type of information store). The different values are "
+"<literal>Index.NO</literal> (no indexing, i.e. cannot be found by a query), "
+"<literal>Index.TOKENIZED</literal> (use an analyzer to process the "
+"property), <literal>Index.UN_TOKENISED</literal> (no analyzer pre-"
+"processing), <literal>Index.NO_NORM</literal> (do not store the "
+"normalization data). The default value is <literal>TOKENIZED</literal>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:73
+#, no-c-format
+msgid "These attributes are part of the <literal>@Field</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:76
+#, no-c-format
+msgid ""
+"Whether or not you want to store the data depends on how you wish to use the "
+"index query result. For a regular Hibernate Search usage, storing is not "
+"necessary. However you might want to store some fields to subsequently "
+"project them (see <xref linkend=\"Hibernate_Search-Query-Projections\"/> for "
+"more information)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:82
+#, no-c-format
+msgid ""
+"Whether or not you want to tokenize a property depends on whether you wish "
+"to search the element as is, or by the words it contains. It make sense to "
+"tokenize a text field, but it does not to do it for a date field (or an id "
+"field). Note that fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:88
+#, no-c-format
+msgid ""
+"Finally, the id property of an entity is a special property used by "
+"Hibernate Search to ensure index unicity of a given entity. By design, an id "
+"has to be stored and must not be tokenized. To mark a property as index id, "
+"use the <literal>@DocumentId</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:94
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                <emphasis role=\"bold\">@DocumentId</"
+"emphasis>\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@Field(name="
+"\"Abstract\", index=Index.TOKENIZED, store=Store.YES)</emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED)</emphasis>\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:96
+#, no-c-format
+msgid ""
+"These annotations define an index with three fields: <literal>id</literal> , "
+"<literal>Abstract</literal> and <literal>text</literal> . Note that by "
+"default the field name is decapitalized, following the JavaBean "
+"specification."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:102
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify <literal>@DocumentId</literal> on the "
+"identifier property of your entity class."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:109
+#, no-c-format
+msgid "Mapping properties multiple times"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:111
+#, no-c-format
+msgid ""
+"It is sometimes needed to map a property multiple times per index, with "
+"slightly different indexing strategies. Especially, sorting a query by field "
+"requires the field to be <literal>UN_TOKENIZED</literal>. If one want to "
+"search by words in this property and still sort it, one need to index it "
+"twice, once tokenized, once untokenized. @Fields allows to achieve this goal."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:118
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index = \"Book\" )\n"
+"                                public class Book {\n"
+"                                @Fields( {\n"
+"                                @Field(index = Index.TOKENIZED),\n"
+"                                @Field(name = \"summary_forSort\", index = "
+"Index.UN_TOKENIZED, store = Store.YES)\n"
+"                                } )\n"
+"                                public String getSummary() {\n"
+"                                return summary;\n"
+"                                }\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:120
+#, no-c-format
+msgid ""
+"The field summary is indexed twice, once as <literal>summary</literal> in a "
+"tokenized way, and once as <literal>summary_forSort</literal> in an "
+"untokenized way. @Field supports 2 attributes useful when @Fields is used:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:127
+#, no-c-format
+msgid ""
+"analyzer: defines a @Analyzer annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:132
+#, no-c-format
+msgid ""
+"bridge: defines a @FieldBridge annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:137
+#, no-c-format
+msgid "See below for more information about analyzers and field bridges."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:142
+#, no-c-format
+msgid "Embedded and Associated Objects"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:144
+#, no-c-format
+msgid ""
+"Associated objects as well as embedded objects can be indexed as part of the "
+"root entity index. It is necessary if you expect to search a given entity "
+"based on properties of the associated object(s). In the following example, "
+"the use case is to return the places whose city is Atlanta (In the Lucene "
+"query parser language, it would translate into <code>address.city:Atlanta</"
+"code>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:151
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:153
+#, no-c-format
+msgid ""
+"In this example, the place fields will be indexed in the <literal>Place</"
+"literal> index. The <literal>Place</literal> index documents will also "
+"contain the fields <literal>address.id</literal>, <literal>address.street</"
+"literal>, and <literal>address.city</literal> which you will be able to "
+"query. This is enabled by the <literal>@IndexedEmbedded</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:162
+#, no-c-format
+msgid ""
+"Be careful. Because the data is denormalized in the Lucene index when using "
+"the <classname>@IndexedEmbedded</classname> technique, Hibernate Search "
+"needs to be aware of any change in the Place object and any change in the "
+"Address object to keep the index up to date. To make sure the Place Lucene "
+"document is updated when it's Address changes, you need to mark the other "
+"side of the bidirectional relationship with <classname>@ContainedIn</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:172
+#, no-c-format
+msgid ""
+"<literal>@ContainedIn</literal> is only useful on associations pointing to "
+"entities as opposed to embedded (collection of) objects."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:176
+#, no-c-format
+msgid "Let's make our example a bit more complex:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:178
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded"
+"(depth = 1, prefix = \"ownedBy_\")</emphasis>\n"
+"                                private Owner ownedBy;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner {\n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:180
+#, no-c-format
+msgid ""
+"Any <literal>@*ToOne</literal> and <literal>@Embedded</literal> attribute "
+"can be annotated with <literal>@IndexedEmbedded</literal>. The attributes of "
+"the associated class will then be added to the main entity index. In the "
+"previous example, the index will contain the following fields"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:188
+#, no-c-format
+msgid "<para>id</para>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:192
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:196
+#, no-c-format
+msgid "address.street"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:200
+#, no-c-format
+msgid "address.city"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:204
+#, no-c-format
+msgid "addess.ownedBy_name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:208
+#, no-c-format
+msgid ""
+"The default prefix is <literal>propertyName.</literal>, following the "
+"traditional object navigation convention. You can override it using the "
+"<literal>prefix</literal> attribute as it is shown on the <literal>ownedBy</"
+"literal> property."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:213
+#, no-c-format
+msgid ""
+"<literal>depth</literal> is necessary when the object graph contains a "
+"cyclic dependency of classes (not instances). For example, if "
+"<classname>Owner</classname> points to <classname>Place</classname>. "
+"Hibernate Search will stop including Indexed embedded attributes after "
+"reaching the expected depth (or the object graph boundaries are reached). A "
+"class having a self reference is an example of cyclic dependency. In our "
+"example, because <literal>depth</literal> is set to 1, any "
+"<literal>@IndexedEmbedded</literal> attribute in Owner (if any) will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:223
+#, no-c-format
+msgid ""
+"Such a feature (<literal>@IndexedEmbedded</literal>) is very useful to "
+"express queries referring to associated objects, such as:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:229
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where address city is Atlanta. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:232
+#, no-c-format
+msgid "+name:jboss +address.city:atlanta"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:236
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where owner's name contain Joe. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:239
+#, no-c-format
+msgid "+name:jboss +address.orderBy_name:joe"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:243
+#, no-c-format
+msgid ""
+"In a way it mimics the relational join operation in a more efficient way (at "
+"the cost of data duplication). Remember that, out of the box, Lucene indexes "
+"have no notion of association, the join operation is simply non-existent. It "
+"might help to keep the relational model normalized while benefiting from the "
+"full text index speed and feature richness."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:251
+#, no-c-format
+msgid ""
+"An associated object can itself be (but don't have to) <literal>@Indexed</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:255
+#, no-c-format
+msgid ""
+"When @IndexedEmbedded points to an entity, the association has to be "
+"directional and the other side has to be annotated <literal>@ContainedIn</"
+"literal> (as see in the previous example). If not, Hibernate Search has no "
+"way to update the root index when the associated entity is updated (in our "
+"example, a <literal>Place</literal> index document has to be updated when "
+"the associated <classname>Address</classname> instance is updated."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:263
+#, no-c-format
+msgid ""
+"Sometimes, the object type annotated by <classname>@IndexedEmbedded</"
+"classname> is not the object type targeted by Hibernate and Hibernate Search "
+"especially when interface are used in lieu of their implementation. You can "
+"override the object type targeted by Hibernate Search using the "
+"<command>targetElement</command> parameter."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:270
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index= Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @IndexedEmbedded(depth = 1, prefix = "
+"\"ownedBy_\", <emphasis role=\"bold\">targetElement = Owner.class</"
+"emphasis>)\n"
+"                                @Target(Owner.class)\n"
+"                                private Person ownedBy;\n"
+"                                \n"
+"                                \n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner implements Person { ... }"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:274
+#, no-c-format
+msgid "Boost factor"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:276
+#, no-c-format
+msgid ""
+"Lucene has the notion of <emphasis>boost factor</emphasis> . It's a way to "
+"give more weight to a field or to an indexed element over an other during "
+"the indexation process. You can use <literal>@Boost</literal> at the field "
+"or the class level."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:281
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                <emphasis role=\"bold\">@Boost(2)</"
+"emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                @DocumentId\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                @Field(name=\"Abstract\", index=Index."
+"TOKENIZED, store=Store.YES)\n"
+"                                <emphasis role=\"bold\">@Boost(2.5f)</"
+"emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:283
+#, no-c-format
+msgid ""
+"In our example, Essay's probability to reach the top of the search list will "
+"be multiplied by 2 and the summary field will be 2.5 more important than the "
+"test field. Note that this explanation is actually wrong, but it is simple "
+"and close enough to the reality. Please check the Lucene documentation or "
+"the excellent <citetitle>Lucene In Action </citetitle> from Otis Gospodnetic "
+"and Erik Hatcher."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:292
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:294
+#, no-c-format
+msgid ""
+"The default analyzer class used to index the elements is configurable "
+"through the <literal>hibernate.search.analyzer</literal> property. If none "
+"is defined, <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</"
+"classname> is used as the default."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:300
+#, no-c-format
+msgid ""
+"You can also define the analyzer class per entity, per property and even per "
+"@Field (useful when multiple fields are indexed from a single property)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:304
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                @Analyzer(impl = EntityAnalyzer.class)\n"
+"                                public class MyEntity {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Integer id;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                @Analyzer(impl = PropertyAnalyzer.class)\n"
+"                                private String summary;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED, analyzer = "
+"@Analyzer(impl = FieldAnalyzer.class)\n"
+"                                private String body;\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:306
+#, no-c-format
+msgid ""
+"In this example, <classname>EntityAnalyzer</classname> is used index all "
+"tokenized properties (e.g. <literal>name</literal>), except for "
+"<literal>summary</literal> and <literal>body</literal> which are indexed "
+"with <classname>PropertyAnalyzer</classname> and <classname>FieldAnalyzer</"
+"classname> respectively."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:313
+#, no-c-format
+msgid ""
+"Mixing different analyzers in the same entity is most of the time a bad "
+"practice. It makes query building more complex and results less predictable "
+"(for the novice), especially if you are using a QueryParser (which uses the "
+"same analyzer for the whole query). As a thumb rule, the same analyzer "
+"should be used for both the indexing and the query for a given field."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:326
+#, no-c-format
+msgid "Property/Field Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:328
+#, no-c-format
+msgid ""
+"In Lucene all index fields have to be represented as Strings. For this "
+"reason all entity properties annotated with <literal>@Field</literal> have "
+"to be indexed in a String form. For most of your properties, Hibernate "
+"Search does the translation job for you thanks to a built-in set of bridges. "
+"In some cases, though you need a more fine grain control over the "
+"translation process."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:336
+#, no-c-format
+msgid "Built-in bridges"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:338
+#, no-c-format
+msgid ""
+"<literal>Hibernate Search</literal> comes bundled with a set of built-in "
+"bridges between a Java property type and its full text representation."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:344
+#, no-c-format
+msgid "null"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:347
+#, no-c-format
+msgid ""
+"null elements are not indexed. Lucene does not support null elements and "
+"this does not make much sense either."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:353
+#, no-c-format
+msgid "java.lang.String"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:356
+#, no-c-format
+msgid "String are indexed as is"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:361
+#, no-c-format
+msgid ""
+"short, Short, integer, Integer, long, Long, float, Float, double, Double, "
+"BigInteger, BigDecimal"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:365
+#, no-c-format
+msgid ""
+"Numbers are converted in their String representation. Note that numbers "
+"cannot be compared by Lucene (i.e. used in ranged queries) out of the box: "
+"they have to be padded"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:368
+#, no-c-format
+msgid ""
+"Using a Range query is debatable and has drawbacks, an alternative approach "
+"is to use a Filter query which will filter the result query to the "
+"appropriate range."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:372
+#, no-c-format
+msgid "Hibernate Search will support a padding mechanism"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:378
+#, no-c-format
+msgid "java.util.Date"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:381
+#, no-c-format
+msgid ""
+"Dates are stored as yyyyMMddHHmmssSSS in GMT time (200611072203012 for Nov "
+"7th of 2006 4:03PM and 12ms EST). You shouldn't really bother with the "
+"internal format. What is important is that when using a DateRange Query, you "
+"should know that the dates have to be expressed in GMT time."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:387
+#, no-c-format
+msgid ""
+"Usually, storing the date up to the millisecond is not necessary. "
+"<literal>@DateBridge</literal> defines the appropriate resolution you are "
+"willing to store in the index ( <literal> <literal>@DateBridge"
+"(resolution=Resolution.DAY)</literal> </literal> ). The date pattern will "
+"then be truncated accordingly."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:394
+#, no-c-format
+msgid ""
+"@Entity \n"
+"                                                        @Indexed\n"
+"                                                        public class Meeting "
+"{\n"
+"                                                        @Field(index=Index."
+"UN_TOKENIZED)\n"
+"                                                        <emphasis role=\"bold"
+"\">@DateBridge(resolution=Resolution.MINUTE)</emphasis>\n"
+"                                                        private Date date;\n"
+"                                                        ..."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:397
+#, no-c-format
+msgid ""
+"A Date whose resolution is lower than <literal>MILLISECOND</literal> cannot "
+"be a <literal>@DocumentId</literal>"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:408
+#, no-c-format
+msgid "Custom Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:410
+#, no-c-format
+msgid ""
+"It can happen that the built-in bridges of Hibernate Search do not cover "
+"some of your property types, or that the String representation used is not "
+"what you expect. The following paragraphs several solutions for this problem."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:416
+#, no-c-format
+msgid "StringBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:418
+#, no-c-format
+msgid ""
+"The simplest custom solution is to give <productname>Hibernate Search </"
+"productname> an implementation of your expected <emphasis>object to String</"
+"emphasis> bridge. To do so you need to implements the <literal>org.hibernate."
+"search.bridge.StringBridge</literal> interface"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:425
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Padding Integer bridge.\n"
+"                                        * All numbers will be padded with 0 "
+"to match 5 digits\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class PaddedIntegerBridge "
+"implements <emphasis role=\"bold\">StringBridge</emphasis> {\n"
+"                                        \n"
+"                                        private int PADDING = 5;\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"String objectToString(Object object)</emphasis> {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"PADDING) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; PADDING ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:427
+#, no-c-format
+msgid ""
+"Then any property or field can use this bridge thanks to the "
+"<literal>@FieldBridge</literal> annotation"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:430
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">@FieldBridge(impl = PaddedIntegerBridge.class)</"
+"emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:432
+#, no-c-format
+msgid ""
+"Parameters can be passed to the Bridge implementation making it more "
+"flexible. The Bridge implementation implements a "
+"<classname>ParameterizedBridge</classname> interface, and the parameters are "
+"passed through the <literal>@FieldBridge</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:438
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements StringBridge, <emphasis\n"
+"                                                                                role="
+"\"bold\">ParameterizedBridge</emphasis> {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"setParameterValues(Map parameters)</emphasis> {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        <emphasis role=\"bold\">params = "
+"@Parameter(name=\"padding\", value=\"10\")</emphasis>\n"
+"                                        )\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:440
+#, no-c-format
+msgid ""
+"The <classname>ParameterizedBridge</classname> interface can be implemented "
+"by <classname>StringBridge</classname> , <classname>TwoWayStringBridge</"
+"classname> , <classname>FieldBridge</classname> implementations (see bellow)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:446
+#, no-c-format
+msgid ""
+"If you expect to use your bridge implementation on for an id property (i.e. "
+"annotated with <literal>@DocumentId</literal> ), you need to use a slightly "
+"extended version of <literal>StringBridge</literal> named "
+"<classname>TwoWayStringBridge</classname> . <literal>Hibernate Search </"
+"literal> needs to read the string representation of the identifier and "
+"generate the object out of it. There is not difference in the way the "
+"<literal>@FieldBridge</literal> annotation is used."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:455
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements TwoWayStringBridge, "
+"ParameterizedBridge {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"Object stringToObject(String stringValue)</emphasis> {\n"
+"                                        return new Integer(stringValue);\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //id property\n"
+"                                        @DocumentId\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        params = @Parameter(name=\"padding"
+"\", value=\"10\") \n"
+"                                        private Integer id;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:457
+#, no-c-format
+msgid ""
+"It is critically important for the two-way process to be idempotent (i.e. "
+"object = stringToObject( objectToString( object ) ) )."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:465
+#, no-c-format
+msgid "FieldBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:467
+#, no-c-format
+msgid ""
+"Some usecases requires more than a simple object to string translation when "
+"mapping a property to a Lucene index. To give you most of the flexibility "
+"you can also implement a bridge as a <classname>FieldBridge</classname> . "
+"This interface give you a property value and let you map it the way you want "
+"in your Lucene <classname>Document</classname> .This interface is very "
+"similar in its concept to the <productname>Hibernate</productname> "
+"<classname>UserType</classname> ."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:476
+#, no-c-format
+msgid ""
+"You can for example store a given property in two different document fields"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:479
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Store the date in 3 different "
+"field year, month, day\n"
+"                                        * to ease Range Query per year, "
+"month or day\n"
+"                                        * (e.g. get all the elements of "
+"December for the last 5 years)\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class DateSplitBridge "
+"implements FieldBridge {\n"
+"                                        private final static TimeZone GMT = "
+"TimeZone.getTimeZone(\"GMT\");\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"set(String name, Object value, Document document, Field.Store\n"
+"                                                store, Field.Index index, "
+"Float boost) {\n"
+"                                        </emphasis>\n"
+"                                        Date date = (Date) value;\n"
+"                                        Calendar cal = GregorianCalendar."
+"getInstance( GMT );\n"
+"                                        cal.setTime( date );\n"
+"                                        int year = cal.get( Calendar."
+"YEAR );\n"
+"                                        int month = cal.get( Calendar."
+"MONTH ) + 1;\n"
+"                                        int day = cal.get( Calendar."
+"DAY_OF_MONTH );\n"
+"                                        //set year\n"
+"                                        Field field = new Field( name + \"."
+"year\", String.valueOf(year), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set month and pad it if needed\n"
+"                                        field = new Field( name + \".month"
+"\", month &lt; 10 ? \"0\" : \"\" + String.valueOf(month), store, index);\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set day and pad it if needed\n"
+"                                        field = new Field( name + \".day\", "
+"day &lt; 10 ? \"0\" : \"\" + String.valueOf(day), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        <emphasis role=\"bold\">@FieldBridge"
+"(impl = DateSplitBridge.class)</emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:484
+#, no-c-format
+msgid "@ClassBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:486
+#, no-c-format
+msgid ""
+"It is sometimes useful to combine more than one property of a given entity "
+"and index this combination in a specific way into the Lucene index. The "
+"<classname>@ClassBridge</classname> and <classname>@ClassBridges</classname> "
+"annotations can be defined at the class level (as opposed to the property "
+"level). In this case the custom field bridge implementation receives the "
+"entity instance as the value parameter instead of a particular property."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:494
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                        @Indexed\n"
+"                                        <emphasis role=\"bold"
+"\">@ClassBridge</emphasis>(name=\"branchnetwork\",\n"
+"                                        index=Index.TOKENIZED,\n"
+"                                        store=Store.YES,\n"
+"                                        impl = <emphasis role=\"bold"
+"\">CatFieldsClassBridge.class</emphasis>,\n"
+"                                        params = @Parameter( name=\"sepChar"
+"\", value=\" \" ) )\n"
+"                                        public class Department {\n"
+"                                        private int id;\n"
+"                                        private String network;\n"
+"                                        private String branchHead;\n"
+"                                        private String branch;\n"
+"                                        private Integer maxEmployees;\n"
+"                                        ...\n"
+"                                        }\n"
+"                                        \n"
+"                                        public class CatFieldsClassBridge "
+"implements FieldBridge, ParameterizedBridge {\n"
+"                                        \n"
+"                                        private String sepChar;\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        this.sepChar = (String) parameters."
+"get( \"sepChar\" );\n"
+"                                        }\n"
+"                                        \n"
+"                                        public void set(String name, \n"
+"                                        Object value, //the department "
+"instance (entity) in this case\n"
+"                                        Document document, //the Lucene "
+"document \n"
+"                                        Field.Store store, Field.Index "
+"index, Float boost) {\n"
+"                                        // In this particular class the name "
+"of the new field was passed\n"
+"                                        // from the name field of the "
+"ClassBridge Annotation. This is not\n"
+"                                        // a requirement. It just works that "
+"way in this instance. The\n"
+"                                        // actual name could be supplied by "
+"hard coding it below.\n"
+"                                        Department dep = (Department) "
+"value;\n"
+"                                        String fieldValue1 = dep.getBranch"
+"();\n"
+"                                        if ( fieldValue1 == null ) {\n"
+"                                        fieldValue1 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue2 = dep.getNetwork"
+"();\n"
+"                                        if ( fieldValue2 == null ) {\n"
+"                                        fieldValue2 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue = fieldValue1 + "
+"sepChar + fieldValue2;\n"
+"                                        Field field = new Field( name, "
+"fieldValue, store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:496
+#, no-c-format
+msgid ""
+"In this example, the particular <classname>CatFieldsClassBridge</classname> "
+"is applied to the <literal>department</literal> instance, the field bridge "
+"then concatenate both branch and network and index the concatenation."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Optimize.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Optimize.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Optimize.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,210 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Optimize.xml:6
+#, no-c-format
+msgid "Index Optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:8
+#, no-c-format
+msgid ""
+"From time to time, the Lucene index needs to be optimized. The process is "
+"essentially a defragmentation: until the optimization occurs, deleted "
+"documents are just marked as such, no physical deletion is applied, the "
+"optimization can also adjust the number of files in the Lucene Directory."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:16
+#, no-c-format
+msgid ""
+"The optimization speeds up searches but in no way speeds up indexation "
+"(update). During an optimization, searches can be performed (but will most "
+"likely be slowed down), and all index updates will be stopped. Prefer "
+"optimizing:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:25
+#, no-c-format
+msgid "on an idle system or when the searches are less frequent"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:29
+#, no-c-format
+msgid ""
+"after a lot of index modifications (doing so before will not speed up the "
+"indexation process)"
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:35
+#, no-c-format
+msgid "Automatic optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:37
+#, no-c-format
+msgid "Hibernate Search can optimize automatically an index after:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:41
+#, no-c-format
+msgid "a certain amount of operations have been applied (insertion, deletion)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:46
+#, no-c-format
+msgid "or a certain amount of transactions have been applied"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:50
+#, no-c-format
+msgid "The configuration can be global or defined at the index level:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:53
+#, no-c-format
+msgid ""
+"hibernate.search.default.optimizer.operation_limit.max = 1000\n"
+"                        hibernate.search.default.optimizer.transaction_limit."
+"max = 100\n"
+"                        \n"
+"                        hibernate.search.Animal.optimizer.transaction_limit."
+"max = 50"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:55
+#, no-c-format
+msgid ""
+"An optimization will be triggered to the <literal>Animal</literal> index as "
+"soon as either:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:60
+#, no-c-format
+msgid "the number of addition and deletion reaches 1000"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:64
+#, no-c-format
+msgid ""
+"the number of transactions reaches 50 (<command>hibernate.search.Animal."
+"optimizer.transaction_limit.max</command> having priority over "
+"<command>hibernate.search.default.optimizer.transaction_limit.max</command>)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:71
+#, no-c-format
+msgid ""
+"If none of these parameters are defined, not optimization is processed "
+"automatically."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:76
+#, no-c-format
+msgid "Manual optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:78
+#, no-c-format
+msgid ""
+"You can programmatically optimize (defragment) a Lucene index from Hibernate "
+"Search through the <classname>SearchFactory</classname>"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:81
+#, no-c-format
+msgid ""
+"searchFactory.optimize(Order.class);\n"
+"                        \n"
+"                        searchFactory.optimize();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:83
+#, no-c-format
+msgid ""
+"The first example re-index the Lucene index holding <classname>Order</"
+"classname>s, the second, optimize all indexes."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:86
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> can be accessed from a "
+"<classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:89
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:91
+#, no-c-format
+msgid ""
+"Note that <literal>searchFactory.optimize()</literal> has no effect on a JMS "
+"backend. You must apply the optimize operation on the Master node."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:97
+#, no-c-format
+msgid "Adjusting optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:99
+#, no-c-format
+msgid ""
+"Apache Lucene has a few parameters to influence how optimization is "
+"performed. Hibernate Search expose those parameters."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:102
+#, no-c-format
+msgid ""
+"Further index optimization parameters include <literal>hibernate.search."
+"[default|&lt;indexname&gt;].merge_factor</literal>, <literal>hibernate."
+"search.[default|&lt;indexname&gt;].max_merge_docs</literal> and "
+"<literal>hibernate.search.[default|&lt;indexname&gt;].max_buffered_docs</"
+"literal> - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Preface.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Preface.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Preface.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,20 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Query.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Query.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Query.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1058 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Query.xml:6
+#, no-c-format
+msgid "Query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:8
+#, no-c-format
+msgid ""
+"The second most important capability of Hibernate Search is the ability to "
+"execute a Lucene query and retrieve entities managed by an Hibernate "
+"session, providing the power of Lucene without living the Hibernate "
+"paradigm, and giving another dimension to the Hibernate classic search "
+"mechanisms (HQL, Criteria query, native SQL query)."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:14
+#, no-c-format
+msgid ""
+"To access the <productname>Hibernate Search</productname> querying "
+"facilities, you have to use an Hibernate <classname>FullTextSession</"
+"classname> . A Search Session wraps a regular <classname>org.hibernate."
+"Session</classname> to provide query and indexing capabilities."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:20
+#, no-c-format
+msgid ""
+"Session session = sessionFactory.openSession();\n"
+"                ...\n"
+"                FullTextSession fullTextSession = Search."
+"createFullTextSession(session);"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:22
+#, no-c-format
+msgid "The search facility is built on native Lucene queries."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:24
+#, no-c-format
+msgid ""
+"org.apache.lucene.queryParser.QueryParser parser = new QueryParser(\"title"
+"\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );\n"
+"                </emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.list(); //return a list of "
+"managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:26
+#, no-c-format
+msgid ""
+"The Hibernate query built on top of the Lucene query is a regular "
+"<literal>org.hibernate.Query</literal> , you are in the same paradigm as the "
+"other Hibernate query facilities (HQL, Native or Criteria). The regular "
+"<literal>list()</literal> , <literal>uniqueResult()</literal> , "
+"<literal>iterate()</literal> and <literal>scroll()</literal> can be used."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:33
+#, no-c-format
+msgid ""
+"For people using Java Persistence (aka EJB 3.0 Persistence) APIs of "
+"Hibernate, the same extensions exist:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:36
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                \n"
+"                FullTextEntityManager fullTextEntityManager = \n"
+"                org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                \n"
+"                ...\n"
+"                org.apache.lucene.queryParser.QueryParser parser = new "
+"QueryParser(\"title\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">javax.persistence.Query "
+"fullTextQuery = fullTextEntityManager.createFullTextQuery( luceneQuery );</"
+"emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.getResultList(); //return a list "
+"of managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:38
+#, no-c-format
+msgid ""
+"The following examples show the Hibernate APIs but the same example can be "
+"easily rewritten with the Java Persistence API by just adjusting the way the "
+"FullTextQuery is retrieved."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:43
+#, no-c-format
+msgid "Building queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:45
+#, no-c-format
+msgid ""
+"Hibernate Search queries are built on top of Lucene queries. It gives you a "
+"total freedom on the kind of Lucene queries you are willing to execute. "
+"However, once built, Hibernate Search abstract the query processing from "
+"your application using org.hibernate.Query as your primary query "
+"manipulation API."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:52
+#, no-c-format
+msgid "Building a Lucene query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:54
+#, no-c-format
+msgid ""
+"This subject is generally speaking out of the scope of this documentation. "
+"Please refer to the Lucene documentation or Lucene In Action."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:60
+#, no-c-format
+msgid "Building a Hibernate Search query"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:63
+#, no-c-format
+msgid "Generality"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:65
+#, no-c-format
+msgid ""
+"Once the Lucene query is built, it needs to be wrapped into an Hibernate "
+"Query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession( session );\n"
+"                                        org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:70
+#, no-c-format
+msgid ""
+"If not specified otherwise, the query will be executed against all indexed "
+"entities, potentially returning all types of indexed classes. It is advised, "
+"from a performance point of view, to restrict the returned types:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:75
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        //or\n"
+"                                        fullTextQuery = fullTextSession."
+"createFullTextQuery( luceneQuery, Item.class, Actor.class );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:77
+#, no-c-format
+msgid ""
+"The first example returns only matching customers, the second returns "
+"matching actors and items."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:82
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:84
+#, no-c-format
+msgid ""
+"It is recommended to restrict the number of returned objects per query. It "
+"is a very common use case as well, the user usually navigate from one page "
+"to an other. The way to define pagination is exactly the way you would "
+"define pagination in a plain HQL or Criteria query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:90
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        fullTextQuery.setFirstResult(15); //"
+"start from the 15th element\n"
+"                                        fullTextQuery.setMaxResults(10); //"
+"return 10 elements"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:93
+#, no-c-format
+msgid ""
+"It is still possible to get the total number of matching elements regardless "
+"of the pagination. See <command>getResultSize()</command> below"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:100
+#, no-c-format
+msgid "Sorting"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:102
+#, no-c-format
+msgid ""
+"Apache Lucene provides a very flexible and powerful way to sort results. "
+"While the default sorting (by relevance) is appropriate most of the time, it "
+"can interesting to sort by one or several properties."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:107
+#, no-c-format
+msgid ""
+"Inject the Lucene Sort object to apply a Lucene sorting strategy to an "
+"Hibernate Search."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:110
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery( query, "
+"Book.class );\n"
+"                                        org.apache.lucene.search.Sort sort = "
+"new Sort(new SortField(\"title\"));\n"
+"                                        <emphasis role=\"bold\">query.setSort"
+"(sort);</emphasis>\n"
+"                                        List results = query.list();"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:112
+#, no-c-format
+msgid ""
+"One can notice the <classname>FullTextQuery</classname> interface which is a "
+"sub interface of <classname>org.hibernate.Query</classname>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:116
+#, no-c-format
+msgid "Fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:120
+#, no-c-format
+msgid "Fetching strategy"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:122
+#, no-c-format
+msgid ""
+"When you restrict the return types to one class, Hibernate Search loads the "
+"objects using a single query. It also respects the static fetching strategy "
+"defined in your domain model."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:126
+#, no-c-format
+msgid ""
+"It is often useful, however, to refine the fetching strategy for a specific "
+"use case."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:129
+#, no-c-format
+msgid ""
+"Criteria criteria = s.createCriteria( Book.class ).setFetchMode( \"authors"
+"\", FetchMode.JOIN );\n"
+"                                        s.createFullTextQuery( luceneQuery )."
+"setCriteriaQuery( criteria );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:131
+#, no-c-format
+msgid ""
+"In this example, the query will return all Books matching the luceneQuery. "
+"The authors collection will be loaded from the same query using an SQL outer "
+"join."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:135
+#, no-c-format
+msgid ""
+"When defining a criteria query, it is not needed to restrict the entity "
+"types returned while creating the Hibernate Search query from the full text "
+"session: the type is guessed from the criteria query itself. Only fetch mode "
+"can be adjusted, refrain from applying any other restriction."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:141
+#, no-c-format
+msgid ""
+"One cannot use <command>setCriteriaQuery</command> if more than one entity "
+"type is expected to be returned."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:146
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:148
+#, no-c-format
+msgid ""
+"For some use cases, returning the domain object (graph) is overkill. Only a "
+"small subset of the properties is necessary. Hibernate Search allows you to "
+"return a subset of properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:152
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( \"id\", \"summary\", \"body\", \"mainAuthor.name\" )</"
+"emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        Integer id = firstResult[0];\n"
+"                                        String summary = firstResult[1];\n"
+"                                        String body = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:154
+#, no-c-format
+msgid ""
+"Hibernate Search extracts the properties from the Lucene index and convert "
+"them back to their object representation, returning a list of "
+"<classname>Object[]</classname>. Projections avoid a potential database "
+"round trip (useful if the query response time is critical), but has some "
+"constraints:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:162
+#, no-c-format
+msgid ""
+"the properties projected must be stored in the index (<literal>@Field"
+"(store=Store.YES)</literal>), which increase the index size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:168
+#, no-c-format
+msgid ""
+"the properties projected must use a <literal>FieldBridge</literal> "
+"implementing <classname>org.hibernate.search.bridge.TwoWayFieldBridge</"
+"classname> or <literal>org.hibernate.search.bridge.TwoWayStringBridge</"
+"literal>, the latter being the simpler version. All Hibernate Search built-"
+"in types are two-way."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:178
+#, no-c-format
+msgid ""
+"Projection is useful for another kind of usecases. Lucene provides some "
+"metadata information to the user about the results. By using some special "
+"placeholders, the projection mechanism can retrieve them:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:183
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( FullTextQuery.SCORE, FullTextQuery.BOOST, FullTextQuery."
+"THIS, \"mainAuthor.name\" )</emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        float score = firstResult[0];\n"
+"                                        float boost = firstResult[1];\n"
+"                                        Book book = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:185
+#, no-c-format
+msgid ""
+"You can mix and match regular fields and special placeholders. Here is the "
+"list of available placeholders:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:190
+#, no-c-format
+msgid ""
+"FullTextQuery.THIS: returns the initialized and managed entity (as a non "
+"projected query would have done)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:195
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT: returns the Lucene Document related to the object "
+"projected"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:200
+#, no-c-format
+msgid ""
+"FullTextQuery.SCORE: returns the document score in the query. The score is "
+"guaranteed to be between 0 and 1 but the highest score is not necessarily "
+"equals to 1. Scores are handy to compare one result against an other for a "
+"given query but are useless when comparing the result of different queries."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:208
+#, no-c-format
+msgid "FullTextQuery.BOOST: the boost value of the Lucene Document"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:213
+#, no-c-format
+msgid "FullTextQuery.ID: the id property value of the projected object"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:218
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT_ID: the Lucene document id. Careful, Lucene document "
+"id can change overtime between two different IndexReader opening (this "
+"feature is experimental)"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:228
+#, no-c-format
+msgid "Retrieving the results"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:230
+#, no-c-format
+msgid ""
+"Once the Hibernate Search query is built, executing it is in no way "
+"different than executing a HQL or Criteria query. The same paradigm and "
+"object semantic apply. All the common operations are available: <command>list"
+"()</command>, <command>uniqueResult()</command>, <command>iterate()</"
+"command>, <command>scroll()</command>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:238
+#, no-c-format
+msgid "Performance considerations"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:240
+#, no-c-format
+msgid ""
+"If you expect a reasonable number of results (for example using pagination) "
+"and expect to work on all of them, <command>list()</command> or "
+"<command>uniqueResult()</command> are recommended. <command>list()</command> "
+"work best if the entity <literal>batch-size</literal> is set up properly. "
+"Note that Hibernate Search has to process all Lucene Hits elements (within "
+"the pagination) when using <command>list()</command> , <command>uniqueResult"
+"()</command> and <command>iterate()</command>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:251
+#, no-c-format
+msgid ""
+"If you wish to minimize Lucene document loading, <command>scroll()</command> "
+"is more appropriate. Don't forget to close the <classname>ScrollableResults</"
+"classname> object when you're done, since it keeps Lucene resources. If you "
+"expect to use <command>scroll</command> but wish to load objects in batch, "
+"you can use <command>query.setFetchSize()</command>: When an object is "
+"accessed, and if not already loaded, Hibernate Search will load the next "
+"<literal>fetchSize</literal> objects in one pass."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:260
+#, no-c-format
+msgid "Pagination is a preferred method over scrolling though."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:264
+#, no-c-format
+msgid "Result size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:266
+#, no-c-format
+msgid "It is sometime useful to know the total number of matching documents:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:271
+#, no-c-format
+msgid "for the Google-like feature 1-10 of about 888,000,000"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:275
+#, no-c-format
+msgid "to implement a fast pagination navigation"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:279
+#, no-c-format
+msgid ""
+"to implement a multi step search engine (adding approximation if the "
+"restricted query return no or not enough results)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:284
+#, no-c-format
+msgid "But it would be costly to retrieve all the matching documents."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:287
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to retrieve the total number of matching "
+"documents regardless of the pagination parameters. Even more interesting, "
+"you can retrieve the number of matching elements without triggering a single "
+"object load."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:292
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the number of matching books without "
+"loading a single one\n"
+"                                \n"
+"                                org.hibernate.search.FullTextQuery query = s."
+"createFullTextQuery( luceneQuery, Book.class );\n"
+"                                query.setMaxResult(10);\n"
+"                                List results = query.list();\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the total number of matching books "
+"regardless of pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:295
+#, no-c-format
+msgid ""
+"Like Google, the number of results is approximate if the index is not fully "
+"up-to-date with the database (asynchronous cluster for example)."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:302
+#, no-c-format
+msgid "ResultTransformer"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:304
+#, no-c-format
+msgid ""
+"Especially when using projection, the data structure returned by a query (an "
+"object array in this case), is not always matching the application needs. It "
+"is possible to apply a <classname>ResultTransformer</classname> operation "
+"post query to match the targeted data structure:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:310
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                query.setProjection( \"title\", \"mainAuthor."
+"name\" );\n"
+"                                \n"
+"                                <emphasis role=\"bold\">query."
+"setResultTransformer( \n"
+"                                        new "
+"StaticAliasToBeanResultTransformer( BookView.class, \"title\", \"author"
+"\" ) \n"
+"                                        );</emphasis>\n"
+"                                List&lt;BookView&gt; results = (List&lt;"
+"BookView&gt;) query.list();\n"
+"                                for(BookView view : results) {\n"
+"                                log.info( \"Book: \" + view.getTitle() + \", "
+"\" + view.getAuthor() );\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:312
+#, no-c-format
+msgid ""
+"Examples of <classname>ResultTransformer</classname> implementations can be "
+"found in the Hibernate Core codebase."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:318
+#, no-c-format
+msgid "Filters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:320
+#, no-c-format
+msgid ""
+"Apache Lucene has a powerful feature that allows to filters results from a "
+"query according to a custom filtering process. This is a very powerful way "
+"to apply some data restrictions after a query, especially since filters can "
+"be cached and reused. Some interesting usecases are:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:328
+#, no-c-format
+msgid "security"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:332
+#, no-c-format
+msgid "temporal data (e.g.. view only last month's data)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:336
+#, no-c-format
+msgid "population filter (e.g. search limited to a given category)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:341
+#, no-c-format
+msgid "and many more"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:345
+#, no-c-format
+msgid ""
+"Hibernate Search pushes the concept further by introducing the notion of "
+"parameterizable named filters which are transparently cached. For people "
+"familiar with the notion of Hibernate Core filters, the API is very similar."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:350
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"bestDriver\");\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")."
+"setParameter( \"login\", \"andre\" );\n"
+"                        fullTextQuery.list(); //returns only best drivers "
+"where andre has credentials"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:352
+#, no-c-format
+msgid ""
+"In this example we enabled 2 filters on top of this query. You can enable "
+"(or disable) as many filters as you want."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:355
+#, no-c-format
+msgid ""
+"Declaring filters is done through the <classname>@FullTextFilterDef</"
+"classname> annotation. This annotation can be on any <literal>@Indexed</"
+"literal> entity regardless of the filter operation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:360
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDefs( {\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"bestDriver\", impl = BestDriversFilter.class, cache=false)</emphasis>, //"
+"actual Filter implementation\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"security\", impl = SecurityFilterFactory.class)</emphasis> //Filter "
+"factory with parameters\n"
+"                        })\n"
+"                        public class Driver { ... }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:362
+#, no-c-format
+msgid "Each named filter points to an actual filter implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:364
+#, no-c-format
+msgid ""
+"public class BestDriversFilter extends <emphasis\n"
+"                                                                                role="
+"\"bold\">org.apache.lucene.search.Filter</emphasis> {\n"
+"                        \n"
+"                        public BitSet bits(IndexReader reader) throws "
+"IOException {\n"
+"                        BitSet bitSet = new BitSet( reader.maxDoc() );\n"
+"                        TermDocs termDocs = reader.termDocs( new Term(\"score"
+"\", \"5\") );\n"
+"                        while ( termDocs.next() ) {\n"
+"                        bitSet.set( termDocs.doc() );\n"
+"                        }\n"
+"                        return bitSet;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:366
+#, no-c-format
+msgid ""
+"<classname>BestDriversFilter</classname> is an example of a simple Lucene "
+"filter that will filter all results to only return drivers whose score is 5. "
+"The filters must have a no-arg constructor when referenced in a "
+"<literal>FulltextFilterDef.impl</literal>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:371
+#, no-c-format
+msgid ""
+"The <literal>cache</literal> flag, defaulted to <literal>true</literal>, "
+"tells Hibernate Search to search the filter in its internal cache and reuses "
+"it if found."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:375
+#, no-c-format
+msgid ""
+"Note that, usually, filter using the <classname>IndexReader</classname> are "
+"wrapped in a Lucene <classname>CachingWrapperFilter</classname> to benefit "
+"from some caching speed improvement. If your Filter creation requires "
+"additional steps or if the filter you are willing to use does not have a no-"
+"arg constructor, you can use the factory pattern:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:382
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDef(name = \"bestDriver\", impl = "
+"BestDriversFilterFactory.class) //Filter factory\n"
+"                        public class Driver { ... }\n"
+"                        \n"
+"                        public class BestDriversFilterFactory {\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Factory</emphasis>\n"
+"                        public Filter getFilter() {\n"
+"                        //some additional steps to cache the filter results "
+"per IndexReader\n"
+"                        Filter bestDriversFilter = new BestDriversFilter();\n"
+"                        return new CachingWrapperFilter(bestDriversFilter);\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:384
+#, no-c-format
+msgid ""
+"Hibernate Search will look for a <literal>@Factory</literal> annotated "
+"method and use it to build the filter instance. The factory must have a no-"
+"arg constructor. For people familiar with JBoss Seam, this is similar to the "
+"component factory pattern, but the annotation is different!"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:390
+#, no-c-format
+msgid ""
+"Named filters comes in handy where the filters have parameters. For example "
+"a security filter needs to know which credentials you are willing to filter "
+"by:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:394
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")"
+"<emphasis role=\"bold\">.setParameter( \"level\", 5 )</emphasis>;"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:396
+#, no-c-format
+msgid ""
+"Each parameter name should have an associated setter on either the filter or "
+"filter factory of the targeted named filter definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:399
+#, no-c-format
+msgid ""
+"public class SecurityFilterFactory {\n"
+"                        private Integer level;\n"
+"                        \n"
+"                        /**\n"
+"                        * injected parameter\n"
+"                        */\n"
+"                        <emphasis role=\"bold\">public void setLevel(Integer "
+"level)</emphasis> {\n"
+"                        this.level = level;\n"
+"                        }\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Key\n"
+"                                public FilterKey getKey()</emphasis> {\n"
+"                        StandardFilterKey key = new StandardFilterKey();\n"
+"                        key.addParameter( level );\n"
+"                        return key;\n"
+"                        }\n"
+"                        \n"
+"                        @Factory\n"
+"                        public Filter getFilter() {\n"
+"                        Query query = new TermQuery( new Term(\"level\", "
+"level.toString() ) );\n"
+"                        return new CachingWrapperFilter( new "
+"QueryWrapperFilter(query) );\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:401
+#, no-c-format
+msgid ""
+"Note the method annotated <classname>@Key</classname> and returning a "
+"<classname>FilterKey</classname> object. The returned object has a special "
+"contract: the key object must implement equals / hashcode so that 2 keys are "
+"equals if and only if the given Filter types are the same and the set of "
+"parameters are the same. In other words, 2 filter keys are equal if and only "
+"if the filters from which the keys are generated can be interchanged. The "
+"key object is used as a key in the cache mechanism."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:410
+#, no-c-format
+msgid "<classname>@Key</classname> methods are needed only if:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:414
+#, no-c-format
+msgid "you enabled the filter caching system (enabled by default)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:419
+#, no-c-format
+msgid "your filter has parameters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:423
+#, no-c-format
+msgid ""
+"In most cases, using the <literal>StandardFilterKey</literal> implementation "
+"will be good enough. It delegates the equals/hashcode implementation to each "
+"of the parameters equals and hashcode methods."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:428
+#, no-c-format
+msgid ""
+"Why should filters be cached? There are two area where filter caching shines:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:433
+#, no-c-format
+msgid ""
+"the system does not update the targeted entity index often (in other words, "
+"the IndexReader is reused a lot)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:438
+#, no-c-format
+msgid ""
+"the Filter BitSet is expensive to compute (compared to the time spent to "
+"execute the query)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:443
+#, no-c-format
+msgid ""
+"Cache is enabled by default and use the notion of SoftReferences to dispose "
+"memory when needed. To adjust the size of the hard reference cache, use "
+"<literal>hibernate.search.filter.cache_strategy.size</literal> (defaults to "
+"128). Don't forget to use a <classname>CachingWrapperFilter</classname> when "
+"the filter is cacheable and the Filter's bits methods makes use of "
+"IndexReader."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:450
+#, no-c-format
+msgid ""
+"For advance use of filter caching, you can implement your own "
+"<classname>FilterCachingStrategy</classname>. The classname is defined by "
+"<literal>hibernate.search.filter.cache_strategy</literal>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:456
+#, no-c-format
+msgid "Optimizing the query process"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:458
+#, no-c-format
+msgid "Query performance depends on several criteria:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:462
+#, no-c-format
+msgid "the Lucene query itself: read the literature on this subject"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:467
+#, no-c-format
+msgid ""
+"the number of object loaded: use pagination (always ;-) ) or index "
+"projection (if needed)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:472
+#, no-c-format
+msgid ""
+"the way Hibernate Search interacts with the Lucene readers: defines the "
+"appropriate <xref linkend=\"Hibernate_Search-Architecture-Reader_Strategy\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:480
+#, no-c-format
+msgid "Native Lucene Queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:482
+#, no-c-format
+msgid ""
+"If you wish to use some specific features of Lucene, you can always run "
+"Lucene specific queries. Check <xref linkend=\"Hibernate_Search-Lucene_Native"
+"\"/> for more informations."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Revision_History.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Revision_History.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/de-DE/Revision_History.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,33 @@
+# Language de-DE translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Danielle</firstname> <surname>Coulson</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Content reformat"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Architecture.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Architecture.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Architecture.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,367 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture.xml:6
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:9
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:11
+#, no-c-format
+msgid ""
+"Hibernate Search consists of an indexing and an index search engine. Both "
+"are backed by Apache Lucene."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:14
+#, no-c-format
+msgid ""
+"When an entity is inserted, updated or removed in/from the database, "
+"Hibernate Search keeps track of this event (through the Hibernate event "
+"system) and schedules an index update. All the index updates are handled for "
+"you without you having to use the Apache Lucene APIs (see <xref linkend="
+"\"Hibernate_Search-Configuration-Event\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:19
+#, no-c-format
+msgid ""
+"To interact with Apache Lucene indexes, Hibernate Search has the notion of "
+"<classname>DirectoryProvider</classname>s. A directory provider will manage "
+"a given Lucene <classname>Directory</classname> type. You can configure "
+"directory providers to adjust the directory target (see <xref linkend="
+"\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:24
+#, no-c-format
+msgid ""
+"Hibernate Search can also use the Lucene index to search an entity and "
+"return a list of managed entities saving you the tedious object to Lucene "
+"document mapping. The same persistence context is shared between Hibernate "
+"and Hibernate Search; as a matter of fact, the Search Session is built on "
+"top of the Hibernate Session. The application code use the unified "
+"<classname>org.hibernate.Query</classname> or <classname>javax.persistence."
+"Query</classname> APIs exactly the way a HQL, JPA-QL or native queries would "
+"do."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:33
+#, no-c-format
+msgid ""
+"To be more efficient, Hibernate Search batches the write interactions with "
+"the Lucene index. There is currently two types of batching depending on the "
+"expected scope."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:37
+#, no-c-format
+msgid ""
+"Outside a transaction, the index update operation is executed right after "
+"the actual database operation. This scope is really a no scoping setup and "
+"no batching is performed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:41
+#, no-c-format
+msgid ""
+"It is however recommended, for both your database and Hibernate Search, to "
+"execute your operation in a transaction be it JDBC or JTA. When in a "
+"transaction, the index update operation is scheduled for the transaction "
+"commit and discarded in case of transaction rollback. The batching scope is "
+"the transaction. There are two immediate benefits:"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:50
+#, no-c-format
+msgid ""
+"Performance: Lucene indexing works better when operation are executed in "
+"batch."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:55
+#, no-c-format
+msgid ""
+"ACIDity: The work executed has the same scoping as the one executed by the "
+"database transaction and is executed if and only if the transaction is "
+"committed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:60
+#, no-c-format
+msgid ""
+"Disclaimer, the work in not ACID in the strict sense of it, but ACID "
+"behavior is rarely useful for full text search indexes since they can be "
+"rebuilt from the source at any time."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:67
+#, no-c-format
+msgid ""
+"You can think of those two scopes (no scope vs transactional) as the "
+"equivalent of the (infamous) auto-commit vs transactional behavior. From a "
+"performance perspective, the <emphasis>in transaction</emphasis> mode is "
+"recommended. The scoping choice is made transparently: Hibernate Search "
+"detects the presence of a transaction and adjust the scoping."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:74
+#, no-c-format
+msgid ""
+"Hibernate Search works perfectly fine in the Hibernate / EntityManager long "
+"conversation pattern aka. atomic conversation."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:80
+#, no-c-format
+msgid ""
+"Depending on user demand, additional scoping will be considered, the "
+"pluggability mechanism being already in place."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:87
+#, no-c-format
+msgid "Back End"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:89
+#, no-c-format
+msgid ""
+"Hibernate Search offers the ability to let the scoped work being processed "
+"by different back ends. Two back ends are provided out of the box for two "
+"different scenarios."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:96
+#, no-c-format
+msgid ""
+"Hibernate Search is an extensible architecture. While not yet part of the "
+"public API, plugging a third party back end is possible. Feel free to drop "
+"ideas to <literal>hibernate-dev at lists.jboss.org</literal>."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:102
+#, no-c-format
+msgid "Lucene"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:104
+#, no-c-format
+msgid ""
+"In this mode, all index update operations applied on a given node (JVM) will "
+"be executed to the Lucene directories (through the directory providers) by "
+"the same node. This mode is typically used in non clustered environment or "
+"in clustered environments where the directory store is shared."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:120
+#, no-c-format
+msgid ""
+"This mode targets non clustered applications, or clustered applications "
+"where the Directory is taking care of the locking strategy."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:126
+#, no-c-format
+msgid ""
+"The main advantage is simplicity and immediate visibility of the changes in "
+"Lucene queries (a requirement is some applications)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:133
+#, no-c-format
+msgid "<title>JMS</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:135
+#, no-c-format
+msgid ""
+"All index update operations applied on a given node are sent to a JMS queue. "
+"A unique reader will then process the queue and update the master Lucene "
+"index. The master index is then replicated on a regular basis to the slave "
+"copies. This is known as the master / slaves pattern. The master is the sole "
+"responsible for updating the Lucene index. The slaves can accept read as "
+"well as write operations. However, they only process the read operation on "
+"their local index copy and delegate the update operations to the master."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:153
+#, no-c-format
+msgid ""
+"This mode targets clustered environments where throughput is critical, and "
+"index update delays are affordable. Reliability is ensured by the JMS "
+"provider and by having the slaves working on a local copy of the index."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:161
+#, no-c-format
+msgid "Work Execution"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:163
+#, no-c-format
+msgid ""
+"The indexing work (done by the back end) can be executed synchronously with "
+"the transaction commit (or update operation if out of transaction), or "
+"asynchronously."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:168
+#, no-c-format
+msgid "Synchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:170
+#, no-c-format
+msgid ""
+"This is the safe mode where the back end work is executed in concert with "
+"the transaction commit. Under highly concurrent environment, this can lead "
+"to throughput limitations (due to the Apache Lucene lock mechanism) and it "
+"can increase the system response time if the backend is significantly slower "
+"than the transactional process and if a lot of IO operations are involved."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:179
+#, no-c-format
+msgid "Asynchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:181
+#, no-c-format
+msgid ""
+"This mode delegates the work done by the back end to a different thread. "
+"That way, throughput and response time are (to a certain extend) "
+"decorrelated from the back end performance. The drawback is that a small "
+"delay appears between the transaction commit and the index update and a "
+"small overhead is introduced to deal with thread management."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:187
+#, no-c-format
+msgid ""
+"It is recommended to use synchronous execution first and evaluate "
+"asynchronous execution if performance problems occur and after having set up "
+"a proper benchmark (i.e. not a lonely cowboy hitting the system in a "
+"completely unrealistic way)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:195
+#, no-c-format
+msgid "Reader Strategy"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:197
+#, no-c-format
+msgid ""
+"When executing a query, Hibernate Search interacts with the Apache Lucene "
+"indexes through a reader strategy. Choosing a reader strategy will depend on "
+"the profile of the application (frequent updates, read mostly, asynchronous "
+"index update etc). See also"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:204
+#, no-c-format
+msgid "Shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:206
+#, no-c-format
+msgid ""
+"With this strategy, Hibernate Search will share the same IndexReader, for a "
+"given Lucene index, across multiple queries and threads provided that the "
+"IndexReader is still up-to-date. If the IndexReader is not up-to-date, a new "
+"one is opened and provided. Generally speaking, this strategy provides much "
+"better performances than the <literal>not-shared</literal> strategy. It is "
+"especially true if the number of updates is much lower than the reads. This "
+"strategy is the default."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:217
+#, no-c-format
+msgid "Not-shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:219
+#, no-c-format
+msgid ""
+"Every time a query is executed, a Lucene IndexReader is opened. This "
+"strategy is not the most efficient since opening and warming up an "
+"IndexReader can be a relatively expensive operation."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:225
+#, no-c-format
+msgid "Custom"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:227
+#, no-c-format
+msgid ""
+"You can write your own reader strategy that suits your application needs by "
+"implementing <classname>org.hibernate.search.reader.ReaderProvider</"
+"classname>. The implementation must be thread safe."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:233
+#, no-c-format
+msgid ""
+"Some additional strategies are planned in future versions of Hibernate Search"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Author_Group.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Author_Group.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,28 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Batch_Index.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Batch_Index.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Batch_Index.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,211 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Batch_Index.xml:6
+#, no-c-format
+msgid "Manual Indexing"
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:9
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:11
+#, no-c-format
+msgid ""
+"It is sometimes useful to index an object even if this object is not "
+"inserted nor updated to the database. This is especially true when you want "
+"to build your index for the first time. You can achieve that goal using the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.index(customer);</"
+"emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:18
+#, no-c-format
+msgid ""
+"For maximum efficiency, Hibernate Search batches index operations and "
+"executes them at commit time (Note: you don't need to use <classname>org."
+"hibernate.Transaction</classname> in a JTA environment)."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:23
+#, no-c-format
+msgid ""
+"If you expect to index a lot of data, you need to be careful about memory "
+"consumption: since all documents are kept in a queue until the transaction "
+"commit, you can potentially face an <classname>OutOfMemoryException</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:28
+#, no-c-format
+msgid ""
+"To avoid that, you can set up the <literal>hibernate.search.worker."
+"batch_size</literal> property to a sensitive value: all index operations are "
+"queued until <literal>batch_size</literal> is reached. Every time "
+"<literal>batch_size</literal> is reached (or if the transaction is "
+"committed), the queue is processed (freeing memory) and emptied. Be aware "
+"that the changes cannot be rolled-back if the number of index elements goes "
+"beyond <literal>batch_size</literal>. Be also aware that the queue limits "
+"are also applied on regular transparent indexing (and not only when "
+"<literal>session.index()</literal> is used). That's why a sensitive "
+"<literal>batch_size</literal> value is expected."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:40
+#, no-c-format
+msgid ""
+"Other parameters which also can affect indexing time and memory consumption "
+"are <literal>hibernate.search.[default|&lt;indexname&gt;].batch."
+"merge_factor</literal> , <literal>hibernate.search.[default|&lt;"
+"indexname&gt;].batch.max_merge_docs</literal> and <literal>hibernate.search."
+"[default|&lt;indexname&gt;].batch.max_buffered_docs</literal> . These "
+"parameters are Lucene specific and Hibernate Search is just passing these "
+"parameters through - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:50
+#, no-c-format
+msgid ""
+"Here is an especially efficient way to index a given class (useful for index "
+"(re)initialization):"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:53
+#, no-c-format
+msgid ""
+"fullTextSession.setFlushMode(FlushMode.MANUAL);\n"
+"                fullTextSession.setCacheMode(CacheMode.IGNORE);\n"
+"                transaction = fullTextSession.beginTransaction();\n"
+"                //Scrollable results will avoid loading too many objects in "
+"memory\n"
+"                ScrollableResults results = fullTextSession.createCriteria"
+"( Email.class ).scroll(\n"
+"                ScrollMode.FORWARD_ONLY );\n"
+"                int index = 0;\n"
+"                while( results.next() ) {\n"
+"                index++;\n"
+"                fullTextSession.index( results.get(0) ); //index each "
+"element\n"
+"                if (index % batchSize == 0) s.clear(); //clear every "
+"batchSize since the queue is processed\n"
+"                }\n"
+"                transaction.commit();"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:55
+#, no-c-format
+msgid ""
+"It is critical that <literal>batchSize</literal> in the previous example "
+"matches the <literal>batch_size</literal> value described previously."
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:61
+#, no-c-format
+msgid "Purging"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:63
+#, no-c-format
+msgid ""
+"It is equally possible to remove an entity or all entities of a given type "
+"from a Lucene index without the need to physically remove them from the "
+"database. This operation is named purging and is done through the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.purge( Customer."
+"class, customer.getId() );</emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:70
+#, no-c-format
+msgid ""
+"Purging will remove the entity with the given id from the Lucene index but "
+"will not touch the database."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:73
+#, no-c-format
+msgid ""
+"If you need to remove all entities of a given type, you can use the "
+"<command>purgeAll</command> method."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:76
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                <emphasis role=\"bold\">fullTextSession.purgeAll( Customer."
+"class );</emphasis>\n"
+"                //optionally optimize the index\n"
+"                //fullTextSession.getSearchFactory().optimize( Customer."
+"class );\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:78
+#, no-c-format
+msgid "It is recommended to optimize the index after such an operation."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:82
+#, no-c-format
+msgid ""
+"Methods <command>index</command>, <command>purge</command> and "
+"<command>purgeAll</command> are available on "
+"<classname>FullTextEntityManager</classname> as well"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Book_Info.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Book_Info.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,54 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate Search Reference Guide CP04 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "Apache <trademark>Lucene</trademark> Integration"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:8
+#, no-c-format
+msgid ""
+"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 4 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is a Reference Guide to Hibernate Search for JBoss Enterprise "
+"Application Platform 4.3.0 CP04 FP01"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:24
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:29
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Configuration.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Configuration.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Configuration.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1155 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuration.xml:6
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:9
+#, no-c-format
+msgid "Directory Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:11
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. The Directory implementation can be customized, but Lucene "
+"comes bundled with a file system (<literal>FSDirectoryProvider</literal>) "
+"and a in memory (<literal>RAMDirectoryProvider</literal>) implementation. "
+"Hibernate Search has the notion of <literal>DirectoryProvider</literal> that "
+"handles the configuration and the initialization of the Lucene Directory."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:20
+#, no-c-format
+msgid ""
+"List of built-in Directory Providers in the namespace of org.hibernate."
+"search.store."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:25
+#, no-c-format
+msgid "Class"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:27 Configuration.xml:243 Configuration.xml:528
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:29
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:35
+#, no-c-format
+msgid "FSDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:37
+#, no-c-format
+msgid ""
+"File system based directory. The directory used will be &lt;indexBase&gt;/"
+"&lt; <literal>@Indexed.name</literal> &gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:41
+#, no-c-format
+msgid "<literal>indexBase</literal> : Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:42 Configuration.xml:60 Configuration.xml:85
+#, no-c-format
+msgid ""
+"<literal>indexName</literal>: override @Index.name (useful for sharded "
+"indexes)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:47
+#, no-c-format
+msgid "FSMasterDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:49
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider. It also copies the "
+"index to a source directory (aka copy directory) on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:52 Configuration.xml:77
+#, no-c-format
+msgid ""
+"The recommended value for the refresh period is (at least) 50% higher that "
+"the time to copy the information (default 3600 seconds - 60 minutes)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:53 Configuration.xml:79
+#, no-c-format
+msgid ""
+"Note that the copy is based on an incremental copy mechanism reducing the "
+"average copy time."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:55
+#, no-c-format
+msgid ""
+"DirectoryProvider typically used on the master node in a JMS back end "
+"cluster."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:56
+#, no-c-format
+msgid ""
+"<entry>DirectoryProvider typically used on slave nodes using a JMS back end."
+"</entry>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:59 Configuration.xml:84
+#, no-c-format
+msgid "<literal>indexBase</literal>: Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:62 Configuration.xml:87
+#, no-c-format
+msgid "<literal>sourceBase</literal>: Source (copy) base directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:63 Configuration.xml:88
+#, no-c-format
+msgid ""
+"<literal>source</literal>: Source directory suffix (default to "
+"<literal>@Indexed.name</literal>). The actual source directory name being "
+"<filename>&lt;sourceBase&gt;/&lt;source&gt;</filename>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:67 Configuration.xml:92
+#, no-c-format
+msgid ""
+"refresh: refresh period in second (the copy will take place every refresh "
+"seconds)."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:72
+#, no-c-format
+msgid "FSSlaveDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:74
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider, but retrieves a "
+"master version (source) on a regular basis. To avoid locking and "
+"inconsistent search results, 2 local copies are kept."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:81
+#, no-c-format
+msgid ""
+"<para>DirectoryProvider typically used on slave nodes using a JMS back end.</"
+"para>"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:97
+#, no-c-format
+msgid "RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:99
+#, no-c-format
+msgid ""
+"Memory based directory, the directory will be uniquely identified (in the "
+"same deployment unit) by the <literal>@Indexed.name</literal> element"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:103
+#, no-c-format
+msgid "none"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:109
+#, no-c-format
+msgid ""
+"If the built-in directory providers does not fit your needs, you can write "
+"your own directory provider by implementing the <classname>org.hibernate."
+"store.DirectoryProvider</classname> interface"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:114
+#, no-c-format
+msgid ""
+"Each indexed entity is associated to a Lucene index (an index can be shared "
+"by several entities but this is not usually the case). You can configure the "
+"index through properties prefixed by <command>hibernate.search.</"
+"command><replaceable>indexname</replaceable> . Default properties inherited "
+"to all indexes can be defined using the prefix <command>hibernate.search."
+"default.</command>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:121
+#, no-c-format
+msgid ""
+"To define the directory provider of a given index, you use the property "
+"<literal>hibernate.search.<replaceable>indexname</replaceable>."
+"directory_provider </literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:125
+#, no-c-format
+msgid ""
+"hibernate.search.default.directory_provider  org.hibernate.search.store."
+"FSDirectoryProvider\n"
+"                        hibernate.search.default.indexBase=/usr/lucene/"
+"indexes\n"
+"                        \n"
+"                        hibernate.search.Rules.directory_provider  org."
+"hibernate.search.store.RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:127
+#, no-c-format
+msgid "applied on"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:129
+#, no-c-format
+msgid ""
+"@Indexed(name=\"Status\")\n"
+"public class Status { ... }\n"
+"                        \n"
+"@Indexed(name=\"Rules\")\n"
+"public class Rule { ... }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:131
+#, no-c-format
+msgid ""
+"will create a file system directory in <filename>/usr/lucene/indexes/Status</"
+"filename> where the Status entities will be indexed, and use an in memory "
+"directory named <literal>Rules</literal> where Rule entities will be indexed."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:136
+#, no-c-format
+msgid ""
+"You can easily define common rules like the directory provider and base "
+"directory, and override those default later on on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:140
+#, no-c-format
+msgid ""
+"Writing your own <classname>DirectoryProvider</classname>, you can utilize "
+"this configuration mechanism as well."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:145
+#, no-c-format
+msgid "Index Sharding"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:147
+#, no-c-format
+msgid ""
+"In some extreme cases involving huge indexes (in size), it is necessary to "
+"split (shard) the indexing data of a given entity type into several Lucene "
+"indexes. This solution is not recommended until you reach significant index "
+"sizes and index update time are slowing down. The main drawback of index "
+"sharding is that searches will end up being slower since more files have to "
+"be opened for a single search. In other words don't do it until you have "
+"problems :)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:155
+#, no-c-format
+msgid ""
+"Despite this strong warning, Hibernate Search allows you to index a given "
+"entity type into several sub indexes. Data is sharded into the different sub "
+"indexes thanks to an <classname>IndexShardingStrategy</classname>. By "
+"default, no sharding strategy is enabled, unless the number of shards is "
+"configured. To configure the number of shards use the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:162
+#, no-c-format
+msgid "hibernate.search.&lt;indexName&gt;.sharding_strategy.nbr_of_shards 5"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:164
+#, no-c-format
+msgid "This will use 5 different shards."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:166
+#, no-c-format
+msgid ""
+"The default sharding strategy, when shards are set up, splits the data "
+"according to the hash value of the id string representation (generated by "
+"the Field Bridge). This ensures a fairly balanced sharding. You can replace "
+"the strategy by implementing <literal>IndexShardingStrategy</literal> and by "
+"setting the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:173
+#, no-c-format
+msgid ""
+"hibernate.search.&lt;indexName&gt;.sharding_strategy my.shardingstrategy."
+"Implementation"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:175
+#, no-c-format
+msgid ""
+"Each shard has an independent directory provider configuration as described "
+"in <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>. The "
+"DirectoryProvider default name for the previous example are <literal>&lt;"
+"indexName&gt;.0</literal> to <literal>&lt;indexName&gt;.4</literal>. In "
+"other words, each shard has the name of it's owning index followed by "
+"<command>.</command> (dot) and its index number."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:183
+#, no-c-format
+msgid ""
+"hibernate.search.default.indexBase /usr/lucene/indexes\n"
+"                        \n"
+"                        hibernate.search.Animal.sharding_strategy."
+"nbr_of_shards 5\n"
+"                        hibernate.search.Animal.directory_provider org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        hibernate.search.Animal.0.indexName Animal00\n"
+"                        hibernate.search.Animal.3.indexBase /usr/lucene/"
+"sharded\n"
+"                        hibernate.search.Animal.3.indexName Animal03"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:185
+#, no-c-format
+msgid ""
+"This configuration uses the default id string hashing strategy and shards "
+"the Animal index into 5 sub-indexes. All sub-indexes are FSDirectoryProvider "
+"instances and the directory where each sub-index is stored is as followed:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:192
+#, no-c-format
+msgid ""
+"for subindex 0: /usr/lucene/indexes/Animal00 (shared indexBase but "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:197
+#, no-c-format
+msgid ""
+"for subindex 1: /usr/lucene/indexes/Animal.1 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:202
+#, no-c-format
+msgid ""
+"for subindex 2: /usr/lucene/indexes/Animal.2 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:207
+#, no-c-format
+msgid ""
+"for subindex 3: /usr/lucene/shared/Animal03 (overridden indexBase, "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:212
+#, no-c-format
+msgid ""
+"for subindex 4: /usr/lucene/indexes/Animal.4 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:219
+#, no-c-format
+msgid "Worker Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:221
+#, no-c-format
+msgid ""
+"It is possible to refine how Hibernate Search interacts with Lucene through "
+"the worker configuration. The work can be executed to the Lucene directory "
+"or sent to a JMS queue for later processing. When processed to the Lucene "
+"directory, the work can be processed synchronously or asynchronously to the "
+"transaction commit."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:227
+#, no-c-format
+msgid "You can define the worker configuration using the following properties"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:231
+#, no-c-format
+msgid "Worker Configuration (in the namespace of hibernate.worker)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:241 Configuration.xml:526
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:247
+#, no-c-format
+msgid "backend"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:249
+#, no-c-format
+msgid ""
+"Out of the box support for the Apache Lucene back end and the JMS back end. "
+"Default to <literal>lucene</literal>. Supports also <literal>jms</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:255
+#, no-c-format
+msgid "execution"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:257
+#, no-c-format
+msgid ""
+"Supports synchronous and asynchrounous execution. Default to "
+"<literal><literal>sync</literal></literal>. Supports also <literal>async</"
+"literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:263
+#, no-c-format
+msgid "thread_pool.size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:265
+#, no-c-format
+msgid ""
+"Defines the number of threads in the pool. useful only for asynchrounous "
+"execution. Default to 1."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:270
+#, no-c-format
+msgid "buffer_queue.max"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:272
+#, no-c-format
+msgid ""
+"Defines the maximal number of work queue if the thread poll is starved. "
+"Useful only for asynchrounous execution. Default to infinite. If the limit "
+"is reached, the work is done by the main thread."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:279
+#, no-c-format
+msgid "jndi.*"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:281
+#, no-c-format
+msgid ""
+"Defines the JNDI properties to initiate the InitialContext (if needed). JNDI "
+"is only used by the JMS back end."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:286
+#, no-c-format
+msgid "jms.connection_factory"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:289
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"connection factory from (<literal>java:/ConnectionFactory</literal> by "
+"default in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:296
+#, no-c-format
+msgid "jms.queue"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:298
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"queue from. The queue will be used to post work messages."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:304
+#, no-c-format
+msgid "batch_size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:306
+#, no-c-format
+msgid ""
+"Defines the maximum number of elements indexed before flushing the "
+"transaction-bound queue. Default to 0 (i.e. no limit). See <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:317
+#, no-c-format
+msgid "JMS Master/Slave Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:319
+#, no-c-format
+msgid ""
+"This section describes in greater detail how to configure the Master / "
+"Slaves Hibernate Search architecture."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:323
+#, no-c-format
+msgid "Slave Nodes"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:325
+#, no-c-format
+msgid ""
+"Every index update operation is sent to a JMS queue. Index querying "
+"operations are executed on a local index copy."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:328
+#, no-c-format
+msgid ""
+"### slave configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local copy location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSSlaveDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                hibernate.search.worker.backend = jms\n"
+"                                hibernate.search.worker.jms."
+"connection_factory = java:/ConnectionFactory\n"
+"                                hibernate.search.worker.jms.queue = queue/"
+"hibernatesearch\n"
+"                                #optional jndi configuration (check your JMS "
+"provider for more information)\n"
+"                                \n"
+"                                ## Optional asynchronous execution strategy\n"
+"                                # org.hibernate.worker.execution = async\n"
+"                                # org.hibernate.worker.thread_pool.size = 2\n"
+"                                # org.hibernate.worker.buffer_queue.max = 50"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:330
+#, no-c-format
+msgid "A file system local copy is recommended for faster search results."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:333 Configuration.xml:345
+#, no-c-format
+msgid "The refresh period should be higher that the expected time copy."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:338
+#, no-c-format
+msgid "Master node"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:340
+#, no-c-format
+msgid ""
+"Every index update operation is taken from a JMS queue and executed. The "
+"master index(es) is(are) copied on a regular basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:343
+#, no-c-format
+msgid ""
+"### master configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location where information "
+"is copied to\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local master location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSMasterDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                #Backend is the default lucene one"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:348
+#, no-c-format
+msgid ""
+"In addition to the Hibernate Search framework configuration, a Message "
+"Driven Bean should be written and set up to process index works queue "
+"through JMS."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:352
+#, no-c-format
+msgid ""
+"@MessageDriven(activationConfig = {\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destinationType\", propertyValue=\"javax.jms.Queue\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destination\", propertyValue=\"queue/hiebrnatesearch\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"DLQMaxResent\", propertyValue=\"1\")\n"
+"                                } )\n"
+"                                public class MDBSearchController extends "
+"AbstractJMSHibernateSearchController implements MessageListener {\n"
+"                                @PersistenceContext EntityManager em;\n"
+"                                \n"
+"                                //method retrieving the appropriate session\n"
+"                                protected Session getSession() {\n"
+"                                return (Session) em.getDelegate();\n"
+"                                }\n"
+"                                \n"
+"                                //potentially close the session opened in "
+"#getSession(), not needed here\n"
+"                                protected void cleanSessionIfNeeded(Session "
+"session) \n"
+"                                }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:354
+#, no-c-format
+msgid ""
+"This example inherit the abstract JMS controller class available and "
+"implements a JavaEE 5 MDB. This implementation is given as an example and, "
+"while most likely more complex, can be adjusted to make use of non Java EE "
+"Message Driven Beans. For more information about the <command>getSession()</"
+"command> and <command>cleanSessionIfNeeded()</command>, please check "
+"<classname>AbstractJMSHibernateSearchController</classname>'s javadoc."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:364
+#, no-c-format
+msgid ""
+"Hibernate Search test suite makes use of JBoss Embedded to test the JMS "
+"integration. It allows the unit test to run both the MDB container and JBoss "
+"Messaging (JMS provider) in a standalone way (marketed by some as "
+"\"lightweight\")."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:373
+#, no-c-format
+msgid "Reader Strategy Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:375
+#, no-c-format
+msgid ""
+"The different reader strategies are described in <xref linkend="
+"\"Hibernate_Search-Architecture-Reader_Strategy\"/>. The default reader "
+"strategy is <literal>shared</literal>. This can be adjusted:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:378
+#, no-c-format
+msgid "hibernate.search.reader.strategy = not-shared"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:380
+#, no-c-format
+msgid ""
+"Adding this property switch to the <literal>non shared</literal> strategy."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:383
+#, no-c-format
+msgid "Or if you have a custom reader strategy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:385
+#, no-c-format
+msgid "hibernate.search.reader.strategy = my.corp.myapp.CustomReaderProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:387
+#, no-c-format
+msgid ""
+"where <classname>my.corp.myapp.CustomReaderProvider</classname> is the "
+"custom strategy implementation"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:392
+#, no-c-format
+msgid "Enabling Hibernate Search and automatic indexing"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:395
+#, no-c-format
+msgid "Enabling Hibernate Search"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:397
+#, no-c-format
+msgid ""
+"Hibernate Search is enabled out of the box when using Hibernate Annotations "
+"or Hibernate EntityManager. If, for some reason you need to disable it, set "
+"<literal>hibernate.search.autoregister_listeners</literal> to false. Note "
+"that there is no performance runtime when the listeners are enabled while no "
+"entity is indexable."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:404
+#, no-c-format
+msgid ""
+"To enable Hibernate Search in Hibernate Core, add the "
+"<literal>FullTextIndexEventListener</literal> for the three Hibernate events "
+"that occur after changes are executed to the database. Once again, such a "
+"configuration is not useful with Hibernate Annotations or Hibernate "
+"EntityManager."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:410
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                &lt;session-factory&gt;\n"
+"                                ...\n"
+"                                &lt;event type=\"post-update\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-insert\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-delete\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;/session-factory&gt;\n"
+"                                &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:412
+#, no-c-format
+msgid ""
+"Be sure to add the appropriate jar files in your classpath. Check "
+"<literal>lib/README.TXT</literal> for the list of third party libraries. A "
+"typical installation on top of Hibernate Annotations will add:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:418
+#, no-c-format
+msgid "<filename>hibernate-search.jar</filename>: the core engine"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:423
+#, no-c-format
+msgid "<filename>lucene-core-*.jar</filename>: Lucene core engine"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:429
+#, no-c-format
+msgid "Hibernate Core 3.2.6 and beyond"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:431
+#, no-c-format
+msgid ""
+"If you use Hibernate Core 3.2.6 and beyond, make sure to add three "
+"additional event listeners that cope with collection events"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:435
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                        &lt;session-factory&gt;\n"
+"                                        ...\n"
+"                                        &lt;event type=\"post-collection-"
+"recreate\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"remove\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"update\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;/session-factory&gt;\n"
+"                                        &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:437
+#, no-c-format
+msgid ""
+"Those additional event listeners have been introduced in Hibernate 3.2.6. "
+"note the <classname>FullTextIndexCollectionEventListener</classname> usage. "
+"You need to explicitly reference those event listeners unless you use "
+"Hibernate Annotations 3.3.1 and above."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:446
+#, no-c-format
+msgid "Automatic indexing"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:448
+#, no-c-format
+msgid ""
+"By default, every time an object is inserted, updated or deleted through "
+"Hibernate, Hibernate Search updates the according Lucene index. It is "
+"sometimes desirable to disable that features if either your index is read-"
+"only or if index updates are done in a batch way (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:453
+#, no-c-format
+msgid "To disable event based indexing, set"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:455
+#, no-c-format
+msgid "hibernate.search.indexing_strategy manual"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:458
+#, no-c-format
+msgid ""
+"In most case, the JMS backend provides the best of both world, a lightweight "
+"event based system keeps track of all changes in the system, and the "
+"heavyweight indexing process is done by a separate process or machine."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:467
+#, no-c-format
+msgid "Tuning Lucene indexing performance"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:469
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to tune the Lucene indexing performance by "
+"specifying a set of parameters which are passed through to underlying Lucene "
+"<literal>IndexWriter</literal> such as <literal>mergeFactor</literal>, "
+"<literal>maxMergeDocs</literal> and <literal>maxBufferedDocs</literal>. You "
+"can specify these parameters either as default values applying for all "
+"indexes or on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:477
+#, no-c-format
+msgid ""
+"There are two sets of parameters allowing for different performance settings "
+"depending on the use case. During indexing operations triggered by database "
+"modifications, the following ones are used: <itemizedlist> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"merge_factor</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_merge_docs</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_buffered_docs</literal></para> </listitem> </itemizedlist>When indexing "
+"occurs via <literal>FullTextSession.index()</literal> (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>), the following properties are used:"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:495
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.merge_factor"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:499
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:503
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:507
+#, no-c-format
+msgid ""
+"Unless the corresponding <literal>.batch</literal> property is explicitly "
+"set, the value will default to the <literal>.transaction</literal> property."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:511
+#, no-c-format
+msgid ""
+"For more information about Lucene indexing performances, please refer to the "
+"Lucene documentation."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:515
+#, no-c-format
+msgid ""
+"List of indexing performance properties in the namespace of hibernate.search."
+"[default|&lt;indexname&gt;]"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:530
+#, no-c-format
+msgid "Default Value"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:536
+#, no-c-format
+msgid "transaction.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:538 Configuration.xml:578
+#, no-c-format
+msgid "Controls segment merge frequency and size."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:539 Configuration.xml:579
+#, no-c-format
+msgid ""
+"Determines how often segment indices are merged when insertion occurs. With "
+"smaller values, less RAM is used while indexing, and searches on unoptimized "
+"indices are faster, but indexing speed is slower. With larger values, more "
+"RAM is used during indexing, and while searches on unoptimized indices are "
+"slower, indexing is faster. Thus larger values (&gt; 10) are best for batch "
+"index creation, and smaller values (&lt; 10) for indices that are "
+"interactively maintained. The value must no be lower than 2."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:547 Configuration.xml:557 Configuration.xml:569
+#, no-c-format
+msgid ""
+"Used by Hibernate Search during index update operations as part of database "
+"modifications."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:550 Configuration.xml:572 Configuration.xml:590
+#: Configuration.xml:611
+#, no-c-format
+msgid "<entry>10</entry>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:554
+#, no-c-format
+msgid "transaction.max_merge_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:556 Configuration.xml:596
+#, no-c-format
+msgid "Defines the largest number of documents allowed in a segment."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:560 Configuration.xml:600
+#, no-c-format
+msgid "Unlimited (Integer.MAX_VALUE)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:564
+#, no-c-format
+msgid "transaction. max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:567 Configuration.xml:606
+#, no-c-format
+msgid ""
+"Controls the amount of documents buffered in memory during indexing. The "
+"bigger the more RAM is consumed."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:576
+#, no-c-format
+msgid "batch.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:587 Configuration.xml:597 Configuration.xml:608
+#, no-c-format
+msgid "Used during indexing via <literal>FullTextSession.index()</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:594
+#, no-c-format
+msgid "batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:604
+#, no-c-format
+msgid "batch.max_buffered_docs"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Feedback.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Feedback.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Feedback.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,34 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Getting_Started.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Getting_Started.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Getting_Started.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,606 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"Welcome to Hibernate Search! The following chapter will guide you through "
+"the initial steps required to integrate Hibernate Search into an existing "
+"Hibernate enabled application. In case you are a Hibernate first timer we "
+"recommend you start <ulink url=\"http://hibernate.org/152.html\">here</"
+"ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "System Requirements"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:18
+#, no-c-format
+msgid "System requirements"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:23
+#, no-c-format
+msgid "Java Runtime"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:25
+#, no-c-format
+msgid ""
+"A JDK or JRE version <emphasis>5</emphasis> or greater. You can download a "
+"Java Runtime for Windows/Linux/Solaris <ulink url=\"http://java.sun.com/"
+"javase/downloads/\"> here </ulink>."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:31
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"<literal>hibernate-search.jar</literal> and all dependencies from the "
+"<literal>lib</literal> directory of the Hibernate Search distribution, "
+"especially lucene."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:39
+#, no-c-format
+msgid "Hibernate Core"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:41
+#, no-c-format
+msgid ""
+"These instructions have been tested against Hibernate 3.2.x. Next to the "
+"main <literal>hibernate3.jar</literal> you will need all required libraries "
+"from the <literal>lib</literal> directory of the distribution. Refer to "
+"<literal>README.txt</literal> in the <literal>lib</literal> directory of the "
+"distribution to determine the minimum runtime requirements."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:50
+#, no-c-format
+msgid "Hibernate Annotations"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:52
+#, no-c-format
+msgid ""
+"Although Hibernate Search can be used without Hibernate Annotations the "
+"following instructions use them for ease of use. The tutorial is tested "
+"against version 3.3.x of Hibernate Annotations."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:60
+#, no-c-format
+msgid ""
+"You can download all dependencies from the Hibernate <ulink url=\"http://www."
+"hibernate.org/6.html\">download site</ulink>. You can also verify the "
+"dependency versions against the <ulink url=\"http://www.hibernate.org/6."
+"html#A3\">Hibernate Compatibility Matrix</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:65
+#, no-c-format
+msgid "Maven"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:67
+#, no-c-format
+msgid ""
+"Instead of managing all dependencies yourself, maven users are able to use "
+"the <ulink url=\"http://repository.jboss.com/maven2\">JBoss maven "
+"repository</ulink>. Just add the JBoss repository url to the "
+"<emphasis>repositories</emphasis> section of your <filename>pom.xml</"
+"filename> or <filename>settings.xml</filename>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:73
+#, no-c-format
+msgid ""
+"&lt;repository&gt;\n"
+"                           &lt;id&gt;repository.jboss.org&lt;/id&gt;\n"
+"                        &lt;name&gt;JBoss Maven Repository&lt;/name&gt;\n"
+"                        &lt;url&gt;http://repository.jboss.org/maven2&lt;/"
+"url&gt;\n"
+"                        &lt;layout&gt;default&lt;/layout&gt;\n"
+"                        &lt;/repository&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:75
+#, no-c-format
+msgid "Then add the following dependencies to your pom.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:77
+#, no-c-format
+msgid ""
+"&lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-search&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.0.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-annotations&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-entitymanager&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.1.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:79
+#, no-c-format
+msgid ""
+"Not all three dependencies are required. <emphasis>hibernate-search</"
+"emphasis> alone contains everything needed to use Hibernate Search. "
+"<emphasis>hibernate-annotations</emphasis> is only needed if you use non-"
+"Hibernate Search annotations, which are used in the examples of this "
+"tutorial. Note that <emphasis>hibernate-entitymanager</emphasis> is only "
+"required if you use Hibernate Search in conjunction with JPA."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:87
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:89
+#, no-c-format
+msgid ""
+"Once all required dependencies have been downloaded and added to your "
+"application, you will need to add some properties to your hibernate "
+"configuration file. If you are using Hibernate directly this can be done in "
+"<literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</"
+"literal>. If you are using Hibernate via JPA you can also add the properties "
+"to <literal>persistence.xml</literal>. The default properties are suitable "
+"for the standard use."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:92
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. Hibernate Search handles the initialization and configuration "
+"of a Lucene <literal>Directory</literal> instance via a "
+"<literal>DirectoryProvider</literal>. In this tutorial we will use a "
+"subclass of <literal>DirectoryProvider</literal> called "
+"<classname>FSDirectoryProvider</classname>. This will give us the ability to "
+"physically inspect the Lucene indexes created by Hibernate Search (e.g. via "
+"<ulink url=\"http://www.getopt.org/luke/\">Luke</ulink>). Once you have a "
+"working configuration you can start experimenting with other directory "
+"providers (see <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:103
+#, no-c-format
+msgid ""
+"Lets assume that your application contains the Hibernate managed class "
+"<classname>example.Book</classname> and you now want to add free text search "
+"capabilities to your application in order to search body and summary of the "
+"books contained in your database."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:108
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        private Integer id; \n"
+"                        private String body;  \n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:110
+#, no-c-format
+msgid ""
+"First you need to tell Hibernate Search which <classname>DirectoryProvider</"
+"classname> to use. This can be achieved by setting the <literal>hibernate."
+"search.default.directory_provider</literal> property. You also have to "
+"specify the default root directory for all indexes via <literal>hibernate."
+"search.default.indexBase</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:116
+#, no-c-format
+msgid ""
+"...\n"
+"                        # the default directory provider\n"
+"                        hibernate.search.default.directory_provider = org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        \n"
+"                        # the default base directory for the indecies\n"
+"                        hibernate.search.default.indexBase = /var/lucene/"
+"indexes    \n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:118
+#, no-c-format
+msgid ""
+"Now add three annotations to the <classname>Book</classname> class. The "
+"first annotation <literal>@Indexed</literal> marks <classname>Book</"
+"classname> as indexable. By design Hibernate Search needs to store an "
+"untokenized id in the index to ensure index unicity for a given entity. "
+"<literal>@DocumentId</literal> marks the property to use for this purpose. "
+"Most, if not all of the time, the property is the database primary key. "
+"Finally you will need to index the fields you wish to make searchable. In "
+"our example these fields are <literal>body</literal> and <literal>summary</"
+"literal>. Both properties get annotated with <literal>@Field</literal>. The "
+"property <literal>index=Index.TOKENIZED</literal> will ensure that the text "
+"will be tokenized using the default Lucene analyzer whereas "
+"<literal>store=Store.NO</literal> ensures that the actual data will not be "
+"stored in the index. Usually, tokenizing means chunking a sentence into "
+"individual words (and potentially excluding common words like <literal>a</"
+"literal>, <literal>the </literal>etc)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:135
+#, no-c-format
+msgid ""
+"These settings are sufficient for an initial test. For more details on "
+"entity mapping refer to <xref linkend=\"Hibernate_Search-Mapping-Entity\"/>. "
+"In case you want to store and retrieve the indexed data in order to avoid "
+"database roundtrips, refer to projections in"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:140
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        <emphasis role=\"bold\">@Indexed</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        <emphasis role=\"bold\">@DocumentId</emphasis>\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String body;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:144
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:146
+#, no-c-format
+msgid ""
+"Hibernate Search will index every entity persisted, updated or removed "
+"through Hibernate core transparently for the application. However, the data "
+"already present in your database needs to be indexed once to populate the "
+"Lucene index. Once you have added the above properties and annotations it is "
+"time to trigger an initial batch index of your books. You can achieve this "
+"by adding one of the following code examples to your code (see also <xref "
+"linkend=\"Hibernate_Search-Batch_Index\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:154 Getting_Started.xml:176
+#, no-c-format
+msgid "Example using Hibernate Session:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:156
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        List books = session.createQuery(\"from Book as book"
+"\").list();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextSession.index(book);\n"
+"                        }\n"
+"                        tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:158 Getting_Started.xml:180
+#, no-c-format
+msgid "Example using JPA:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:160
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        FullTextEntityManager fullTextEntityManager = Search."
+"createFullTextEntityManager(em);\n"
+"                        List books = em.createQuery(\"select book from Book "
+"as book\").getResultList();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextEntityManager.index(book);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:162
+#, no-c-format
+msgid ""
+"After executing the above code, you should be able to see a Lucene index "
+"under <literal>/var/lucene/indexes/example.Book</literal>. Go ahead an "
+"inspect this index. It will help you to understand how Hibernate Search "
+"works."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:169
+#, no-c-format
+msgid "Searching"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:171
+#, no-c-format
+msgid ""
+"Now it is time to execute a first search. The following code will prepare a "
+"query against the fields <literal>summary</literal> and <literal>body</"
+"literal>, execute it and return a list of <classname>Book</classname>s:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:178
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        \n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        \n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextSession."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();\n"
+"                        \n"
+"                        tx.commit();\n"
+"                        session.close();"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:182
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        \n"
+"                        FullTextEntityManager fullTextEntityManager = \n"
+"                        org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextEntityManager."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:186
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:188
+#, no-c-format
+msgid ""
+"Assume that one of your indexed book entities contains the text \"Java rocks"
+"\" and you want to get hits for all of the following queries: \"rock\", "
+"\"rocks\", \"rocked\" and \"rocking\". In Lucene this can be achieved by "
+"choosing an analyzer class which applies word stemming during the indexing "
+"process. Hibernate Search offers several ways to configure the analyzer to "
+"use (see <xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:197
+#, no-c-format
+msgid ""
+"Setting the <literal>hibernate.search.analyzer</literal> property in the "
+"configuration file. The specified class will then be the default analyzer."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:203
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the entity level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:208
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the field level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:213
+#, no-c-format
+msgid ""
+"The following example uses the entity level annotation to apply a English "
+"language analyzer which would help you to achieve your goal. The class "
+"<classname>EnglishAnalyzer</classname> is a custom class using the Snowball "
+"English Stemmer from the <ulink url=\"http://lucene.apache.org/java/docs/"
+"lucene-sandbox/\">Lucene Sandbox</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:220
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        @Indexed\n"
+"                        <emphasis role=\"bold\">@Analyzer(impl = example."
+"EnglishAnalyzer.class)</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        @DocumentId\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String body;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ... \n"
+"                        }\n"
+"                        \n"
+"                        public class EnglishAnalyzer extends Analyzer {\n"
+"                        /**\n"
+"                        * {@inheritDoc}\n"
+"                        */\n"
+"                        @Override\n"
+"                        public TokenStream tokenStream(String fieldName, "
+"Reader reader) {\n"
+"                        TokenStream result = new StandardTokenizer(reader);\n"
+"                        result = new StandardFilter(result);\n"
+"                        result = new LowerCaseFilter(result);\n"
+"                        result = new SnowballFilter(result, name);\n"
+"                        return result;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:224
+#, no-c-format
+msgid "What's next"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:226
+#, no-c-format
+msgid ""
+"The above paragraphs hopefully helped you getting started with Hibernate "
+"Search. You should by now have a file system based index and be able to "
+"search and retrieve a list of managed objects via Hibernate Search. The next "
+"step is to get more familiar with the overall architecture (<xref linkend="
+"\"Hibernate_Search-Architecture\"/>) and explore the basic features in more "
+"detail."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:233
+#, no-c-format
+msgid ""
+"Two topics which where only briefly touched in this tutorial were analyzer "
+"configuration (<xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>) and "
+"field bridges (<xref linkend=\"Hibernate_Search-Mapping-Bridge\"/>), both "
+"important features required for more fine-grained indexing."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:238
+#, no-c-format
+msgid ""
+"More advanced topics cover clustering (<xref linkend=\"Hibernate_Search-"
+"Configuration-JMS_Backend\"/>) and large indexes handling (<xref linkend="
+"\"Hibernate_Search-Configuration-Index_Sharding\"/>)."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Hibernate_Search_Reference_Guide_CP04_FP01.po
===================================================================

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Introduction.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Introduction.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,44 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:8
+#, no-c-format
+msgid ""
+"Full text search engines like <productname>Apache Lucene</productname> are "
+"powerful technologies that add efficient free text search capabilities to "
+"applications. However, they suffer several mismatches when dealing with "
+"object domain models. Amongst other things, indexes have to be kept up to "
+"date and mismatches between index structure and domain model as well as "
+"query mismatches need to be avoided."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Hibernate Search indexes your domain model with the help of a few "
+"annotations, takes care of database/index synchronization and brings back "
+"regular managed objects from free text queries. To achieve this Hibernate "
+"Search combines the power of <ulink url=\"http://www.hibernate.org"
+"\">Hibernate</ulink> and <ulink url=\"http://lucene.apache.org\">Apache "
+"Lucene</ulink>."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Lucene_Native.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Lucene_Native.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Lucene_Native.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,161 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Lucene_Native.xml:6
+#, no-c-format
+msgid "Accessing Lucene natively"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:9
+#, no-c-format
+msgid "SearchFactory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:11
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> object keeps track of the "
+"underlying Lucene resources for Hibernate Search, it's also a convenient way "
+"to access Lucene natively. The <classname>SearchFactory</classname> can be "
+"accessed from a <classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:20
+#, no-c-format
+msgid "Accessing a Lucene Directory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:22
+#, no-c-format
+msgid ""
+"You can always access the Lucene directories through plain Lucene, the "
+"Directory structure is in no way different with or without Hibernate Search. "
+"However there are some more convenient ways to access a given Directory. The "
+"<classname>SearchFactory</classname> keeps track of the "
+"<classname>DirectoryProvider</classname>s per indexed class. One directory "
+"provider can be shared amongst several indexed classes if the classes share "
+"the same underlying index directory. While usually not the case, a given "
+"entity can have several <classname>DirectoryProvider</classname>s is the "
+"index is sharded (see <xref linkend=\"Hibernate_Search-Configuration-"
+"Index_Sharding\"/>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:32
+#, no-c-format
+msgid ""
+"DirectoryProvider[] provider = searchFactory.getDirectoryProviders(Order."
+"class);\n"
+"                        org.apache.lucene.store.Directory directory = "
+"provider[0].getDirectory();"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:34
+#, no-c-format
+msgid ""
+"In this example, directory points to the lucene index storing "
+"<classname>Order</classname>s information. Note that the obtained Lucene "
+"directory must not be closed (this is Hibernate Search responsibility)."
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:41
+#, no-c-format
+msgid "Using an IndexReader"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:43
+#, no-c-format
+msgid ""
+"Queries in Lucene are executed on an <literal>IndexReader</literal>. "
+"Hibernate Search caches such index readers to maximize performances. Your "
+"code can access such cached / shared resources. You will just have to follow "
+"some \"good citizen\" rules."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:48
+#, no-c-format
+msgid ""
+"DirectoryProvider orderProvider = searchFactory.getDirectoryProviders(Order."
+"class)[0];\n"
+"                        DirectoryProvider clientProvider = searchFactory."
+"getDirectoryProviders(Client.class)[0];\n"
+"                        \n"
+"                        ReaderProvider readerProvider = searchFactory."
+"getReaderProvider();\n"
+"                        IndexReader reader = readerProvider.openReader"
+"(orderProvider, clientProvider);\n"
+"                        \n"
+"                        try {\n"
+"                        //do read-only operations on the reader\n"
+"                        }\n"
+"                        finally {\n"
+"                        readerProvider.closeReader(reader);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:50
+#, no-c-format
+msgid ""
+"The ReaderProvider (described in <xref linkend=\"Hibernate_Search-"
+"Architecture-Reader_Strategy\"/>), will open an IndexReader on top of the "
+"index(es) referenced by the directory providers. This IndexReader being "
+"shared amongst several clients, you must adhere to the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:57
+#, no-c-format
+msgid ""
+"Never call indexReader.close(), but always call readerProvider.closeReader"
+"(reader); (a finally block is the best area)."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:63
+#, no-c-format
+msgid ""
+"This indexReader must not be used for modification operations (especially "
+"delete), if you want to use an read/write index reader, open one from the "
+"Lucene Directory object."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:69
+#, no-c-format
+msgid ""
+"Aside from those rules, you can use the IndexReader freely, especially to do "
+"native queries. Using the shared <literal>IndexReader</literal>s will make "
+"most queries more efficient."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Mapping.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Mapping.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Mapping.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1284 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Mapping.xml:6
+#, no-c-format
+msgid "Mapping Entities to the Index Structure"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:8
+#, no-c-format
+msgid ""
+"All the metadata information needed to index entities is described through "
+"some Java annotations. There is no need for xml mapping files nor a list of "
+"indexed entities. The list is discovered at startup by scanning the "
+"Hibernate mapped entities."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:14
+#, no-c-format
+msgid "Mapping an entity"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:17
+#, no-c-format
+msgid "Basic mapping"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:19
+#, no-c-format
+msgid ""
+"First, we must declare a persistent class as indexable. This is done by "
+"annotating the class with <literal>@Indexed</literal> (all entities not "
+"annotated with <literal>@Indexed</literal> will be ignored by the indexing "
+"process):"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:24
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                <emphasis role=\"bold\">@Indexed(index="
+"\"indexes/essays\")</emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:26
+#, no-c-format
+msgid ""
+"The <literal>index</literal> attribute tells Hibernate what the Lucene "
+"directory name is (usually a directory on your file system). If you wish to "
+"define a base directory for all Lucene indexes, you can use the "
+"<literal>hibernate.search.default.indexBase</literal> property in your "
+"configuration file. Each entity instance will be represented by a Lucene "
+"<classname>Document</classname> inside the given index (aka Directory)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:34
+#, no-c-format
+msgid ""
+"For each property (or attribute) of your entity, you have the ability to "
+"describe how it will be indexed. The default (i.e. no annotation) means that "
+"the property is completely ignored by the indexing process. <literal>@Field</"
+"literal> does declare a property as indexed. When indexing an element to a "
+"Lucene document you can specify how it is indexed:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:43
+#, no-c-format
+msgid ""
+"<literal>name</literal> : describe under which name, the property should be "
+"stored in the Lucene Document. The default value is the property name "
+"(following the JavaBeans convention)"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:49
+#, no-c-format
+msgid ""
+"<literal>store</literal> : describe whether or not the property is stored in "
+"the Lucene index. You can store the value <literal>Store.YES</literal> "
+"(consuming more space in the index but allowing projection, see <xref "
+"linkend=\"Hibernate_Search-Query-Projections\"/> for more information), "
+"store it in a compressed way <literal>Store.COMPRESS</literal> (this does "
+"consume more CPU), or avoid any storage <literal>Store.NO</literal> (this is "
+"the default value). When a property is stored, you can retrieve it from the "
+"Lucene Document (note that this is not related to whether the element is "
+"indexed or not)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:62
+#, no-c-format
+msgid ""
+"index: describe how the element is indexed (i.e. the process used to index "
+"the property and the type of information store). The different values are "
+"<literal>Index.NO</literal> (no indexing, i.e. cannot be found by a query), "
+"<literal>Index.TOKENIZED</literal> (use an analyzer to process the "
+"property), <literal>Index.UN_TOKENISED</literal> (no analyzer pre-"
+"processing), <literal>Index.NO_NORM</literal> (do not store the "
+"normalization data). The default value is <literal>TOKENIZED</literal>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:73
+#, no-c-format
+msgid "These attributes are part of the <literal>@Field</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:76
+#, no-c-format
+msgid ""
+"Whether or not you want to store the data depends on how you wish to use the "
+"index query result. For a regular Hibernate Search usage, storing is not "
+"necessary. However you might want to store some fields to subsequently "
+"project them (see <xref linkend=\"Hibernate_Search-Query-Projections\"/> for "
+"more information)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:82
+#, no-c-format
+msgid ""
+"Whether or not you want to tokenize a property depends on whether you wish "
+"to search the element as is, or by the words it contains. It make sense to "
+"tokenize a text field, but it does not to do it for a date field (or an id "
+"field). Note that fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:88
+#, no-c-format
+msgid ""
+"Finally, the id property of an entity is a special property used by "
+"Hibernate Search to ensure index unicity of a given entity. By design, an id "
+"has to be stored and must not be tokenized. To mark a property as index id, "
+"use the <literal>@DocumentId</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:94
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                <emphasis role=\"bold\">@DocumentId</"
+"emphasis>\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@Field(name="
+"\"Abstract\", index=Index.TOKENIZED, store=Store.YES)</emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED)</emphasis>\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:96
+#, no-c-format
+msgid ""
+"These annotations define an index with three fields: <literal>id</literal> , "
+"<literal>Abstract</literal> and <literal>text</literal> . Note that by "
+"default the field name is decapitalized, following the JavaBean "
+"specification."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:102
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify <literal>@DocumentId</literal> on the "
+"identifier property of your entity class."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:109
+#, no-c-format
+msgid "Mapping properties multiple times"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:111
+#, no-c-format
+msgid ""
+"It is sometimes needed to map a property multiple times per index, with "
+"slightly different indexing strategies. Especially, sorting a query by field "
+"requires the field to be <literal>UN_TOKENIZED</literal>. If one want to "
+"search by words in this property and still sort it, one need to index it "
+"twice, once tokenized, once untokenized. @Fields allows to achieve this goal."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:118
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index = \"Book\" )\n"
+"                                public class Book {\n"
+"                                @Fields( {\n"
+"                                @Field(index = Index.TOKENIZED),\n"
+"                                @Field(name = \"summary_forSort\", index = "
+"Index.UN_TOKENIZED, store = Store.YES)\n"
+"                                } )\n"
+"                                public String getSummary() {\n"
+"                                return summary;\n"
+"                                }\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:120
+#, no-c-format
+msgid ""
+"The field summary is indexed twice, once as <literal>summary</literal> in a "
+"tokenized way, and once as <literal>summary_forSort</literal> in an "
+"untokenized way. @Field supports 2 attributes useful when @Fields is used:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:127
+#, no-c-format
+msgid ""
+"analyzer: defines a @Analyzer annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:132
+#, no-c-format
+msgid ""
+"bridge: defines a @FieldBridge annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:137
+#, no-c-format
+msgid "See below for more information about analyzers and field bridges."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:142
+#, no-c-format
+msgid "Embedded and Associated Objects"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:144
+#, no-c-format
+msgid ""
+"Associated objects as well as embedded objects can be indexed as part of the "
+"root entity index. It is necessary if you expect to search a given entity "
+"based on properties of the associated object(s). In the following example, "
+"the use case is to return the places whose city is Atlanta (In the Lucene "
+"query parser language, it would translate into <code>address.city:Atlanta</"
+"code>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:151
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:153
+#, no-c-format
+msgid ""
+"In this example, the place fields will be indexed in the <literal>Place</"
+"literal> index. The <literal>Place</literal> index documents will also "
+"contain the fields <literal>address.id</literal>, <literal>address.street</"
+"literal>, and <literal>address.city</literal> which you will be able to "
+"query. This is enabled by the <literal>@IndexedEmbedded</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:162
+#, no-c-format
+msgid ""
+"Be careful. Because the data is denormalized in the Lucene index when using "
+"the <classname>@IndexedEmbedded</classname> technique, Hibernate Search "
+"needs to be aware of any change in the Place object and any change in the "
+"Address object to keep the index up to date. To make sure the Place Lucene "
+"document is updated when it's Address changes, you need to mark the other "
+"side of the bidirectional relationship with <classname>@ContainedIn</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:172
+#, no-c-format
+msgid ""
+"<literal>@ContainedIn</literal> is only useful on associations pointing to "
+"entities as opposed to embedded (collection of) objects."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:176
+#, no-c-format
+msgid "Let's make our example a bit more complex:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:178
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded"
+"(depth = 1, prefix = \"ownedBy_\")</emphasis>\n"
+"                                private Owner ownedBy;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner {\n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:180
+#, no-c-format
+msgid ""
+"Any <literal>@*ToOne</literal> and <literal>@Embedded</literal> attribute "
+"can be annotated with <literal>@IndexedEmbedded</literal>. The attributes of "
+"the associated class will then be added to the main entity index. In the "
+"previous example, the index will contain the following fields"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:188
+#, no-c-format
+msgid "<para>id</para>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:192
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:196
+#, no-c-format
+msgid "address.street"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:200
+#, no-c-format
+msgid "address.city"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:204
+#, no-c-format
+msgid "addess.ownedBy_name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:208
+#, no-c-format
+msgid ""
+"The default prefix is <literal>propertyName.</literal>, following the "
+"traditional object navigation convention. You can override it using the "
+"<literal>prefix</literal> attribute as it is shown on the <literal>ownedBy</"
+"literal> property."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:213
+#, no-c-format
+msgid ""
+"<literal>depth</literal> is necessary when the object graph contains a "
+"cyclic dependency of classes (not instances). For example, if "
+"<classname>Owner</classname> points to <classname>Place</classname>. "
+"Hibernate Search will stop including Indexed embedded attributes after "
+"reaching the expected depth (or the object graph boundaries are reached). A "
+"class having a self reference is an example of cyclic dependency. In our "
+"example, because <literal>depth</literal> is set to 1, any "
+"<literal>@IndexedEmbedded</literal> attribute in Owner (if any) will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:223
+#, no-c-format
+msgid ""
+"Such a feature (<literal>@IndexedEmbedded</literal>) is very useful to "
+"express queries referring to associated objects, such as:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:229
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where address city is Atlanta. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:232
+#, no-c-format
+msgid "+name:jboss +address.city:atlanta"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:236
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where owner's name contain Joe. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:239
+#, no-c-format
+msgid "+name:jboss +address.orderBy_name:joe"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:243
+#, no-c-format
+msgid ""
+"In a way it mimics the relational join operation in a more efficient way (at "
+"the cost of data duplication). Remember that, out of the box, Lucene indexes "
+"have no notion of association, the join operation is simply non-existent. It "
+"might help to keep the relational model normalized while benefiting from the "
+"full text index speed and feature richness."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:251
+#, no-c-format
+msgid ""
+"An associated object can itself be (but don't have to) <literal>@Indexed</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:255
+#, no-c-format
+msgid ""
+"When @IndexedEmbedded points to an entity, the association has to be "
+"directional and the other side has to be annotated <literal>@ContainedIn</"
+"literal> (as see in the previous example). If not, Hibernate Search has no "
+"way to update the root index when the associated entity is updated (in our "
+"example, a <literal>Place</literal> index document has to be updated when "
+"the associated <classname>Address</classname> instance is updated."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:263
+#, no-c-format
+msgid ""
+"Sometimes, the object type annotated by <classname>@IndexedEmbedded</"
+"classname> is not the object type targeted by Hibernate and Hibernate Search "
+"especially when interface are used in lieu of their implementation. You can "
+"override the object type targeted by Hibernate Search using the "
+"<command>targetElement</command> parameter."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:270
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index= Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @IndexedEmbedded(depth = 1, prefix = "
+"\"ownedBy_\", <emphasis role=\"bold\">targetElement = Owner.class</"
+"emphasis>)\n"
+"                                @Target(Owner.class)\n"
+"                                private Person ownedBy;\n"
+"                                \n"
+"                                \n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner implements Person { ... }"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:274
+#, no-c-format
+msgid "Boost factor"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:276
+#, no-c-format
+msgid ""
+"Lucene has the notion of <emphasis>boost factor</emphasis> . It's a way to "
+"give more weight to a field or to an indexed element over an other during "
+"the indexation process. You can use <literal>@Boost</literal> at the field "
+"or the class level."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:281
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                <emphasis role=\"bold\">@Boost(2)</"
+"emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                @DocumentId\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                @Field(name=\"Abstract\", index=Index."
+"TOKENIZED, store=Store.YES)\n"
+"                                <emphasis role=\"bold\">@Boost(2.5f)</"
+"emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:283
+#, no-c-format
+msgid ""
+"In our example, Essay's probability to reach the top of the search list will "
+"be multiplied by 2 and the summary field will be 2.5 more important than the "
+"test field. Note that this explanation is actually wrong, but it is simple "
+"and close enough to the reality. Please check the Lucene documentation or "
+"the excellent <citetitle>Lucene In Action </citetitle> from Otis Gospodnetic "
+"and Erik Hatcher."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:292
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:294
+#, no-c-format
+msgid ""
+"The default analyzer class used to index the elements is configurable "
+"through the <literal>hibernate.search.analyzer</literal> property. If none "
+"is defined, <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</"
+"classname> is used as the default."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:300
+#, no-c-format
+msgid ""
+"You can also define the analyzer class per entity, per property and even per "
+"@Field (useful when multiple fields are indexed from a single property)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:304
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                @Analyzer(impl = EntityAnalyzer.class)\n"
+"                                public class MyEntity {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Integer id;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                @Analyzer(impl = PropertyAnalyzer.class)\n"
+"                                private String summary;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED, analyzer = "
+"@Analyzer(impl = FieldAnalyzer.class)\n"
+"                                private String body;\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:306
+#, no-c-format
+msgid ""
+"In this example, <classname>EntityAnalyzer</classname> is used index all "
+"tokenized properties (e.g. <literal>name</literal>), except for "
+"<literal>summary</literal> and <literal>body</literal> which are indexed "
+"with <classname>PropertyAnalyzer</classname> and <classname>FieldAnalyzer</"
+"classname> respectively."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:313
+#, no-c-format
+msgid ""
+"Mixing different analyzers in the same entity is most of the time a bad "
+"practice. It makes query building more complex and results less predictable "
+"(for the novice), especially if you are using a QueryParser (which uses the "
+"same analyzer for the whole query). As a thumb rule, the same analyzer "
+"should be used for both the indexing and the query for a given field."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:326
+#, no-c-format
+msgid "Property/Field Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:328
+#, no-c-format
+msgid ""
+"In Lucene all index fields have to be represented as Strings. For this "
+"reason all entity properties annotated with <literal>@Field</literal> have "
+"to be indexed in a String form. For most of your properties, Hibernate "
+"Search does the translation job for you thanks to a built-in set of bridges. "
+"In some cases, though you need a more fine grain control over the "
+"translation process."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:336
+#, no-c-format
+msgid "Built-in bridges"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:338
+#, no-c-format
+msgid ""
+"<literal>Hibernate Search</literal> comes bundled with a set of built-in "
+"bridges between a Java property type and its full text representation."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:344
+#, no-c-format
+msgid "null"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:347
+#, no-c-format
+msgid ""
+"null elements are not indexed. Lucene does not support null elements and "
+"this does not make much sense either."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:353
+#, no-c-format
+msgid "java.lang.String"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:356
+#, no-c-format
+msgid "String are indexed as is"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:361
+#, no-c-format
+msgid ""
+"short, Short, integer, Integer, long, Long, float, Float, double, Double, "
+"BigInteger, BigDecimal"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:365
+#, no-c-format
+msgid ""
+"Numbers are converted in their String representation. Note that numbers "
+"cannot be compared by Lucene (i.e. used in ranged queries) out of the box: "
+"they have to be padded"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:368
+#, no-c-format
+msgid ""
+"Using a Range query is debatable and has drawbacks, an alternative approach "
+"is to use a Filter query which will filter the result query to the "
+"appropriate range."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:372
+#, no-c-format
+msgid "Hibernate Search will support a padding mechanism"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:378
+#, no-c-format
+msgid "java.util.Date"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:381
+#, no-c-format
+msgid ""
+"Dates are stored as yyyyMMddHHmmssSSS in GMT time (200611072203012 for Nov "
+"7th of 2006 4:03PM and 12ms EST). You shouldn't really bother with the "
+"internal format. What is important is that when using a DateRange Query, you "
+"should know that the dates have to be expressed in GMT time."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:387
+#, no-c-format
+msgid ""
+"Usually, storing the date up to the millisecond is not necessary. "
+"<literal>@DateBridge</literal> defines the appropriate resolution you are "
+"willing to store in the index ( <literal> <literal>@DateBridge"
+"(resolution=Resolution.DAY)</literal> </literal> ). The date pattern will "
+"then be truncated accordingly."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:394
+#, no-c-format
+msgid ""
+"@Entity \n"
+"                                                        @Indexed\n"
+"                                                        public class Meeting "
+"{\n"
+"                                                        @Field(index=Index."
+"UN_TOKENIZED)\n"
+"                                                        <emphasis role=\"bold"
+"\">@DateBridge(resolution=Resolution.MINUTE)</emphasis>\n"
+"                                                        private Date date;\n"
+"                                                        ..."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:397
+#, no-c-format
+msgid ""
+"A Date whose resolution is lower than <literal>MILLISECOND</literal> cannot "
+"be a <literal>@DocumentId</literal>"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:408
+#, no-c-format
+msgid "Custom Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:410
+#, no-c-format
+msgid ""
+"It can happen that the built-in bridges of Hibernate Search do not cover "
+"some of your property types, or that the String representation used is not "
+"what you expect. The following paragraphs several solutions for this problem."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:416
+#, no-c-format
+msgid "StringBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:418
+#, no-c-format
+msgid ""
+"The simplest custom solution is to give <productname>Hibernate Search </"
+"productname> an implementation of your expected <emphasis>object to String</"
+"emphasis> bridge. To do so you need to implements the <literal>org.hibernate."
+"search.bridge.StringBridge</literal> interface"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:425
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Padding Integer bridge.\n"
+"                                        * All numbers will be padded with 0 "
+"to match 5 digits\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class PaddedIntegerBridge "
+"implements <emphasis role=\"bold\">StringBridge</emphasis> {\n"
+"                                        \n"
+"                                        private int PADDING = 5;\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"String objectToString(Object object)</emphasis> {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"PADDING) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; PADDING ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:427
+#, no-c-format
+msgid ""
+"Then any property or field can use this bridge thanks to the "
+"<literal>@FieldBridge</literal> annotation"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:430
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">@FieldBridge(impl = PaddedIntegerBridge.class)</"
+"emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:432
+#, no-c-format
+msgid ""
+"Parameters can be passed to the Bridge implementation making it more "
+"flexible. The Bridge implementation implements a "
+"<classname>ParameterizedBridge</classname> interface, and the parameters are "
+"passed through the <literal>@FieldBridge</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:438
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements StringBridge, <emphasis\n"
+"                                                                                role="
+"\"bold\">ParameterizedBridge</emphasis> {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"setParameterValues(Map parameters)</emphasis> {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        <emphasis role=\"bold\">params = "
+"@Parameter(name=\"padding\", value=\"10\")</emphasis>\n"
+"                                        )\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:440
+#, no-c-format
+msgid ""
+"The <classname>ParameterizedBridge</classname> interface can be implemented "
+"by <classname>StringBridge</classname> , <classname>TwoWayStringBridge</"
+"classname> , <classname>FieldBridge</classname> implementations (see bellow)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:446
+#, no-c-format
+msgid ""
+"If you expect to use your bridge implementation on for an id property (i.e. "
+"annotated with <literal>@DocumentId</literal> ), you need to use a slightly "
+"extended version of <literal>StringBridge</literal> named "
+"<classname>TwoWayStringBridge</classname> . <literal>Hibernate Search </"
+"literal> needs to read the string representation of the identifier and "
+"generate the object out of it. There is not difference in the way the "
+"<literal>@FieldBridge</literal> annotation is used."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:455
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements TwoWayStringBridge, "
+"ParameterizedBridge {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"Object stringToObject(String stringValue)</emphasis> {\n"
+"                                        return new Integer(stringValue);\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //id property\n"
+"                                        @DocumentId\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        params = @Parameter(name=\"padding"
+"\", value=\"10\") \n"
+"                                        private Integer id;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:457
+#, no-c-format
+msgid ""
+"It is critically important for the two-way process to be idempotent (i.e. "
+"object = stringToObject( objectToString( object ) ) )."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:465
+#, no-c-format
+msgid "FieldBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:467
+#, no-c-format
+msgid ""
+"Some usecases requires more than a simple object to string translation when "
+"mapping a property to a Lucene index. To give you most of the flexibility "
+"you can also implement a bridge as a <classname>FieldBridge</classname> . "
+"This interface give you a property value and let you map it the way you want "
+"in your Lucene <classname>Document</classname> .This interface is very "
+"similar in its concept to the <productname>Hibernate</productname> "
+"<classname>UserType</classname> ."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:476
+#, no-c-format
+msgid ""
+"You can for example store a given property in two different document fields"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:479
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Store the date in 3 different "
+"field year, month, day\n"
+"                                        * to ease Range Query per year, "
+"month or day\n"
+"                                        * (e.g. get all the elements of "
+"December for the last 5 years)\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class DateSplitBridge "
+"implements FieldBridge {\n"
+"                                        private final static TimeZone GMT = "
+"TimeZone.getTimeZone(\"GMT\");\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"set(String name, Object value, Document document, Field.Store\n"
+"                                                store, Field.Index index, "
+"Float boost) {\n"
+"                                        </emphasis>\n"
+"                                        Date date = (Date) value;\n"
+"                                        Calendar cal = GregorianCalendar."
+"getInstance( GMT );\n"
+"                                        cal.setTime( date );\n"
+"                                        int year = cal.get( Calendar."
+"YEAR );\n"
+"                                        int month = cal.get( Calendar."
+"MONTH ) + 1;\n"
+"                                        int day = cal.get( Calendar."
+"DAY_OF_MONTH );\n"
+"                                        //set year\n"
+"                                        Field field = new Field( name + \"."
+"year\", String.valueOf(year), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set month and pad it if needed\n"
+"                                        field = new Field( name + \".month"
+"\", month &lt; 10 ? \"0\" : \"\" + String.valueOf(month), store, index);\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set day and pad it if needed\n"
+"                                        field = new Field( name + \".day\", "
+"day &lt; 10 ? \"0\" : \"\" + String.valueOf(day), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        <emphasis role=\"bold\">@FieldBridge"
+"(impl = DateSplitBridge.class)</emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:484
+#, no-c-format
+msgid "@ClassBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:486
+#, no-c-format
+msgid ""
+"It is sometimes useful to combine more than one property of a given entity "
+"and index this combination in a specific way into the Lucene index. The "
+"<classname>@ClassBridge</classname> and <classname>@ClassBridges</classname> "
+"annotations can be defined at the class level (as opposed to the property "
+"level). In this case the custom field bridge implementation receives the "
+"entity instance as the value parameter instead of a particular property."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:494
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                        @Indexed\n"
+"                                        <emphasis role=\"bold"
+"\">@ClassBridge</emphasis>(name=\"branchnetwork\",\n"
+"                                        index=Index.TOKENIZED,\n"
+"                                        store=Store.YES,\n"
+"                                        impl = <emphasis role=\"bold"
+"\">CatFieldsClassBridge.class</emphasis>,\n"
+"                                        params = @Parameter( name=\"sepChar"
+"\", value=\" \" ) )\n"
+"                                        public class Department {\n"
+"                                        private int id;\n"
+"                                        private String network;\n"
+"                                        private String branchHead;\n"
+"                                        private String branch;\n"
+"                                        private Integer maxEmployees;\n"
+"                                        ...\n"
+"                                        }\n"
+"                                        \n"
+"                                        public class CatFieldsClassBridge "
+"implements FieldBridge, ParameterizedBridge {\n"
+"                                        \n"
+"                                        private String sepChar;\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        this.sepChar = (String) parameters."
+"get( \"sepChar\" );\n"
+"                                        }\n"
+"                                        \n"
+"                                        public void set(String name, \n"
+"                                        Object value, //the department "
+"instance (entity) in this case\n"
+"                                        Document document, //the Lucene "
+"document \n"
+"                                        Field.Store store, Field.Index "
+"index, Float boost) {\n"
+"                                        // In this particular class the name "
+"of the new field was passed\n"
+"                                        // from the name field of the "
+"ClassBridge Annotation. This is not\n"
+"                                        // a requirement. It just works that "
+"way in this instance. The\n"
+"                                        // actual name could be supplied by "
+"hard coding it below.\n"
+"                                        Department dep = (Department) "
+"value;\n"
+"                                        String fieldValue1 = dep.getBranch"
+"();\n"
+"                                        if ( fieldValue1 == null ) {\n"
+"                                        fieldValue1 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue2 = dep.getNetwork"
+"();\n"
+"                                        if ( fieldValue2 == null ) {\n"
+"                                        fieldValue2 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue = fieldValue1 + "
+"sepChar + fieldValue2;\n"
+"                                        Field field = new Field( name, "
+"fieldValue, store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:496
+#, no-c-format
+msgid ""
+"In this example, the particular <classname>CatFieldsClassBridge</classname> "
+"is applied to the <literal>department</literal> instance, the field bridge "
+"then concatenate both branch and network and index the concatenation."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Optimize.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Optimize.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Optimize.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,210 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Optimize.xml:6
+#, no-c-format
+msgid "Index Optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:8
+#, no-c-format
+msgid ""
+"From time to time, the Lucene index needs to be optimized. The process is "
+"essentially a defragmentation: until the optimization occurs, deleted "
+"documents are just marked as such, no physical deletion is applied, the "
+"optimization can also adjust the number of files in the Lucene Directory."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:16
+#, no-c-format
+msgid ""
+"The optimization speeds up searches but in no way speeds up indexation "
+"(update). During an optimization, searches can be performed (but will most "
+"likely be slowed down), and all index updates will be stopped. Prefer "
+"optimizing:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:25
+#, no-c-format
+msgid "on an idle system or when the searches are less frequent"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:29
+#, no-c-format
+msgid ""
+"after a lot of index modifications (doing so before will not speed up the "
+"indexation process)"
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:35
+#, no-c-format
+msgid "Automatic optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:37
+#, no-c-format
+msgid "Hibernate Search can optimize automatically an index after:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:41
+#, no-c-format
+msgid "a certain amount of operations have been applied (insertion, deletion)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:46
+#, no-c-format
+msgid "or a certain amount of transactions have been applied"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:50
+#, no-c-format
+msgid "The configuration can be global or defined at the index level:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:53
+#, no-c-format
+msgid ""
+"hibernate.search.default.optimizer.operation_limit.max = 1000\n"
+"                        hibernate.search.default.optimizer.transaction_limit."
+"max = 100\n"
+"                        \n"
+"                        hibernate.search.Animal.optimizer.transaction_limit."
+"max = 50"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:55
+#, no-c-format
+msgid ""
+"An optimization will be triggered to the <literal>Animal</literal> index as "
+"soon as either:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:60
+#, no-c-format
+msgid "the number of addition and deletion reaches 1000"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:64
+#, no-c-format
+msgid ""
+"the number of transactions reaches 50 (<command>hibernate.search.Animal."
+"optimizer.transaction_limit.max</command> having priority over "
+"<command>hibernate.search.default.optimizer.transaction_limit.max</command>)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:71
+#, no-c-format
+msgid ""
+"If none of these parameters are defined, not optimization is processed "
+"automatically."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:76
+#, no-c-format
+msgid "Manual optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:78
+#, no-c-format
+msgid ""
+"You can programmatically optimize (defragment) a Lucene index from Hibernate "
+"Search through the <classname>SearchFactory</classname>"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:81
+#, no-c-format
+msgid ""
+"searchFactory.optimize(Order.class);\n"
+"                        \n"
+"                        searchFactory.optimize();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:83
+#, no-c-format
+msgid ""
+"The first example re-index the Lucene index holding <classname>Order</"
+"classname>s, the second, optimize all indexes."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:86
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> can be accessed from a "
+"<classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:89
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:91
+#, no-c-format
+msgid ""
+"Note that <literal>searchFactory.optimize()</literal> has no effect on a JMS "
+"backend. You must apply the optimize operation on the Master node."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:97
+#, no-c-format
+msgid "Adjusting optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:99
+#, no-c-format
+msgid ""
+"Apache Lucene has a few parameters to influence how optimization is "
+"performed. Hibernate Search expose those parameters."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:102
+#, no-c-format
+msgid ""
+"Further index optimization parameters include <literal>hibernate.search."
+"[default|&lt;indexname&gt;].merge_factor</literal>, <literal>hibernate."
+"search.[default|&lt;indexname&gt;].max_merge_docs</literal> and "
+"<literal>hibernate.search.[default|&lt;indexname&gt;].max_buffered_docs</"
+"literal> - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Preface.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Preface.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Preface.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,20 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Query.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Query.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Query.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1058 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Query.xml:6
+#, no-c-format
+msgid "Query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:8
+#, no-c-format
+msgid ""
+"The second most important capability of Hibernate Search is the ability to "
+"execute a Lucene query and retrieve entities managed by an Hibernate "
+"session, providing the power of Lucene without living the Hibernate "
+"paradigm, and giving another dimension to the Hibernate classic search "
+"mechanisms (HQL, Criteria query, native SQL query)."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:14
+#, no-c-format
+msgid ""
+"To access the <productname>Hibernate Search</productname> querying "
+"facilities, you have to use an Hibernate <classname>FullTextSession</"
+"classname> . A Search Session wraps a regular <classname>org.hibernate."
+"Session</classname> to provide query and indexing capabilities."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:20
+#, no-c-format
+msgid ""
+"Session session = sessionFactory.openSession();\n"
+"                ...\n"
+"                FullTextSession fullTextSession = Search."
+"createFullTextSession(session);"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:22
+#, no-c-format
+msgid "The search facility is built on native Lucene queries."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:24
+#, no-c-format
+msgid ""
+"org.apache.lucene.queryParser.QueryParser parser = new QueryParser(\"title"
+"\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );\n"
+"                </emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.list(); //return a list of "
+"managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:26
+#, no-c-format
+msgid ""
+"The Hibernate query built on top of the Lucene query is a regular "
+"<literal>org.hibernate.Query</literal> , you are in the same paradigm as the "
+"other Hibernate query facilities (HQL, Native or Criteria). The regular "
+"<literal>list()</literal> , <literal>uniqueResult()</literal> , "
+"<literal>iterate()</literal> and <literal>scroll()</literal> can be used."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:33
+#, no-c-format
+msgid ""
+"For people using Java Persistence (aka EJB 3.0 Persistence) APIs of "
+"Hibernate, the same extensions exist:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:36
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                \n"
+"                FullTextEntityManager fullTextEntityManager = \n"
+"                org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                \n"
+"                ...\n"
+"                org.apache.lucene.queryParser.QueryParser parser = new "
+"QueryParser(\"title\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">javax.persistence.Query "
+"fullTextQuery = fullTextEntityManager.createFullTextQuery( luceneQuery );</"
+"emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.getResultList(); //return a list "
+"of managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:38
+#, no-c-format
+msgid ""
+"The following examples show the Hibernate APIs but the same example can be "
+"easily rewritten with the Java Persistence API by just adjusting the way the "
+"FullTextQuery is retrieved."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:43
+#, no-c-format
+msgid "Building queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:45
+#, no-c-format
+msgid ""
+"Hibernate Search queries are built on top of Lucene queries. It gives you a "
+"total freedom on the kind of Lucene queries you are willing to execute. "
+"However, once built, Hibernate Search abstract the query processing from "
+"your application using org.hibernate.Query as your primary query "
+"manipulation API."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:52
+#, no-c-format
+msgid "Building a Lucene query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:54
+#, no-c-format
+msgid ""
+"This subject is generally speaking out of the scope of this documentation. "
+"Please refer to the Lucene documentation or Lucene In Action."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:60
+#, no-c-format
+msgid "Building a Hibernate Search query"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:63
+#, no-c-format
+msgid "Generality"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:65
+#, no-c-format
+msgid ""
+"Once the Lucene query is built, it needs to be wrapped into an Hibernate "
+"Query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession( session );\n"
+"                                        org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:70
+#, no-c-format
+msgid ""
+"If not specified otherwise, the query will be executed against all indexed "
+"entities, potentially returning all types of indexed classes. It is advised, "
+"from a performance point of view, to restrict the returned types:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:75
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        //or\n"
+"                                        fullTextQuery = fullTextSession."
+"createFullTextQuery( luceneQuery, Item.class, Actor.class );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:77
+#, no-c-format
+msgid ""
+"The first example returns only matching customers, the second returns "
+"matching actors and items."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:82
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:84
+#, no-c-format
+msgid ""
+"It is recommended to restrict the number of returned objects per query. It "
+"is a very common use case as well, the user usually navigate from one page "
+"to an other. The way to define pagination is exactly the way you would "
+"define pagination in a plain HQL or Criteria query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:90
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        fullTextQuery.setFirstResult(15); //"
+"start from the 15th element\n"
+"                                        fullTextQuery.setMaxResults(10); //"
+"return 10 elements"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:93
+#, no-c-format
+msgid ""
+"It is still possible to get the total number of matching elements regardless "
+"of the pagination. See <command>getResultSize()</command> below"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:100
+#, no-c-format
+msgid "Sorting"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:102
+#, no-c-format
+msgid ""
+"Apache Lucene provides a very flexible and powerful way to sort results. "
+"While the default sorting (by relevance) is appropriate most of the time, it "
+"can interesting to sort by one or several properties."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:107
+#, no-c-format
+msgid ""
+"Inject the Lucene Sort object to apply a Lucene sorting strategy to an "
+"Hibernate Search."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:110
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery( query, "
+"Book.class );\n"
+"                                        org.apache.lucene.search.Sort sort = "
+"new Sort(new SortField(\"title\"));\n"
+"                                        <emphasis role=\"bold\">query.setSort"
+"(sort);</emphasis>\n"
+"                                        List results = query.list();"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:112
+#, no-c-format
+msgid ""
+"One can notice the <classname>FullTextQuery</classname> interface which is a "
+"sub interface of <classname>org.hibernate.Query</classname>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:116
+#, no-c-format
+msgid "Fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:120
+#, no-c-format
+msgid "Fetching strategy"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:122
+#, no-c-format
+msgid ""
+"When you restrict the return types to one class, Hibernate Search loads the "
+"objects using a single query. It also respects the static fetching strategy "
+"defined in your domain model."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:126
+#, no-c-format
+msgid ""
+"It is often useful, however, to refine the fetching strategy for a specific "
+"use case."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:129
+#, no-c-format
+msgid ""
+"Criteria criteria = s.createCriteria( Book.class ).setFetchMode( \"authors"
+"\", FetchMode.JOIN );\n"
+"                                        s.createFullTextQuery( luceneQuery )."
+"setCriteriaQuery( criteria );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:131
+#, no-c-format
+msgid ""
+"In this example, the query will return all Books matching the luceneQuery. "
+"The authors collection will be loaded from the same query using an SQL outer "
+"join."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:135
+#, no-c-format
+msgid ""
+"When defining a criteria query, it is not needed to restrict the entity "
+"types returned while creating the Hibernate Search query from the full text "
+"session: the type is guessed from the criteria query itself. Only fetch mode "
+"can be adjusted, refrain from applying any other restriction."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:141
+#, no-c-format
+msgid ""
+"One cannot use <command>setCriteriaQuery</command> if more than one entity "
+"type is expected to be returned."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:146
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:148
+#, no-c-format
+msgid ""
+"For some use cases, returning the domain object (graph) is overkill. Only a "
+"small subset of the properties is necessary. Hibernate Search allows you to "
+"return a subset of properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:152
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( \"id\", \"summary\", \"body\", \"mainAuthor.name\" )</"
+"emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        Integer id = firstResult[0];\n"
+"                                        String summary = firstResult[1];\n"
+"                                        String body = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:154
+#, no-c-format
+msgid ""
+"Hibernate Search extracts the properties from the Lucene index and convert "
+"them back to their object representation, returning a list of "
+"<classname>Object[]</classname>. Projections avoid a potential database "
+"round trip (useful if the query response time is critical), but has some "
+"constraints:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:162
+#, no-c-format
+msgid ""
+"the properties projected must be stored in the index (<literal>@Field"
+"(store=Store.YES)</literal>), which increase the index size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:168
+#, no-c-format
+msgid ""
+"the properties projected must use a <literal>FieldBridge</literal> "
+"implementing <classname>org.hibernate.search.bridge.TwoWayFieldBridge</"
+"classname> or <literal>org.hibernate.search.bridge.TwoWayStringBridge</"
+"literal>, the latter being the simpler version. All Hibernate Search built-"
+"in types are two-way."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:178
+#, no-c-format
+msgid ""
+"Projection is useful for another kind of usecases. Lucene provides some "
+"metadata information to the user about the results. By using some special "
+"placeholders, the projection mechanism can retrieve them:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:183
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( FullTextQuery.SCORE, FullTextQuery.BOOST, FullTextQuery."
+"THIS, \"mainAuthor.name\" )</emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        float score = firstResult[0];\n"
+"                                        float boost = firstResult[1];\n"
+"                                        Book book = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:185
+#, no-c-format
+msgid ""
+"You can mix and match regular fields and special placeholders. Here is the "
+"list of available placeholders:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:190
+#, no-c-format
+msgid ""
+"FullTextQuery.THIS: returns the initialized and managed entity (as a non "
+"projected query would have done)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:195
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT: returns the Lucene Document related to the object "
+"projected"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:200
+#, no-c-format
+msgid ""
+"FullTextQuery.SCORE: returns the document score in the query. The score is "
+"guaranteed to be between 0 and 1 but the highest score is not necessarily "
+"equals to 1. Scores are handy to compare one result against an other for a "
+"given query but are useless when comparing the result of different queries."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:208
+#, no-c-format
+msgid "FullTextQuery.BOOST: the boost value of the Lucene Document"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:213
+#, no-c-format
+msgid "FullTextQuery.ID: the id property value of the projected object"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:218
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT_ID: the Lucene document id. Careful, Lucene document "
+"id can change overtime between two different IndexReader opening (this "
+"feature is experimental)"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:228
+#, no-c-format
+msgid "Retrieving the results"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:230
+#, no-c-format
+msgid ""
+"Once the Hibernate Search query is built, executing it is in no way "
+"different than executing a HQL or Criteria query. The same paradigm and "
+"object semantic apply. All the common operations are available: <command>list"
+"()</command>, <command>uniqueResult()</command>, <command>iterate()</"
+"command>, <command>scroll()</command>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:238
+#, no-c-format
+msgid "Performance considerations"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:240
+#, no-c-format
+msgid ""
+"If you expect a reasonable number of results (for example using pagination) "
+"and expect to work on all of them, <command>list()</command> or "
+"<command>uniqueResult()</command> are recommended. <command>list()</command> "
+"work best if the entity <literal>batch-size</literal> is set up properly. "
+"Note that Hibernate Search has to process all Lucene Hits elements (within "
+"the pagination) when using <command>list()</command> , <command>uniqueResult"
+"()</command> and <command>iterate()</command>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:251
+#, no-c-format
+msgid ""
+"If you wish to minimize Lucene document loading, <command>scroll()</command> "
+"is more appropriate. Don't forget to close the <classname>ScrollableResults</"
+"classname> object when you're done, since it keeps Lucene resources. If you "
+"expect to use <command>scroll</command> but wish to load objects in batch, "
+"you can use <command>query.setFetchSize()</command>: When an object is "
+"accessed, and if not already loaded, Hibernate Search will load the next "
+"<literal>fetchSize</literal> objects in one pass."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:260
+#, no-c-format
+msgid "Pagination is a preferred method over scrolling though."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:264
+#, no-c-format
+msgid "Result size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:266
+#, no-c-format
+msgid "It is sometime useful to know the total number of matching documents:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:271
+#, no-c-format
+msgid "for the Google-like feature 1-10 of about 888,000,000"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:275
+#, no-c-format
+msgid "to implement a fast pagination navigation"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:279
+#, no-c-format
+msgid ""
+"to implement a multi step search engine (adding approximation if the "
+"restricted query return no or not enough results)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:284
+#, no-c-format
+msgid "But it would be costly to retrieve all the matching documents."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:287
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to retrieve the total number of matching "
+"documents regardless of the pagination parameters. Even more interesting, "
+"you can retrieve the number of matching elements without triggering a single "
+"object load."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:292
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the number of matching books without "
+"loading a single one\n"
+"                                \n"
+"                                org.hibernate.search.FullTextQuery query = s."
+"createFullTextQuery( luceneQuery, Book.class );\n"
+"                                query.setMaxResult(10);\n"
+"                                List results = query.list();\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the total number of matching books "
+"regardless of pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:295
+#, no-c-format
+msgid ""
+"Like Google, the number of results is approximate if the index is not fully "
+"up-to-date with the database (asynchronous cluster for example)."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:302
+#, no-c-format
+msgid "ResultTransformer"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:304
+#, no-c-format
+msgid ""
+"Especially when using projection, the data structure returned by a query (an "
+"object array in this case), is not always matching the application needs. It "
+"is possible to apply a <classname>ResultTransformer</classname> operation "
+"post query to match the targeted data structure:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:310
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                query.setProjection( \"title\", \"mainAuthor."
+"name\" );\n"
+"                                \n"
+"                                <emphasis role=\"bold\">query."
+"setResultTransformer( \n"
+"                                        new "
+"StaticAliasToBeanResultTransformer( BookView.class, \"title\", \"author"
+"\" ) \n"
+"                                        );</emphasis>\n"
+"                                List&lt;BookView&gt; results = (List&lt;"
+"BookView&gt;) query.list();\n"
+"                                for(BookView view : results) {\n"
+"                                log.info( \"Book: \" + view.getTitle() + \", "
+"\" + view.getAuthor() );\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:312
+#, no-c-format
+msgid ""
+"Examples of <classname>ResultTransformer</classname> implementations can be "
+"found in the Hibernate Core codebase."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:318
+#, no-c-format
+msgid "Filters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:320
+#, no-c-format
+msgid ""
+"Apache Lucene has a powerful feature that allows to filters results from a "
+"query according to a custom filtering process. This is a very powerful way "
+"to apply some data restrictions after a query, especially since filters can "
+"be cached and reused. Some interesting usecases are:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:328
+#, no-c-format
+msgid "security"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:332
+#, no-c-format
+msgid "temporal data (e.g.. view only last month's data)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:336
+#, no-c-format
+msgid "population filter (e.g. search limited to a given category)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:341
+#, no-c-format
+msgid "and many more"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:345
+#, no-c-format
+msgid ""
+"Hibernate Search pushes the concept further by introducing the notion of "
+"parameterizable named filters which are transparently cached. For people "
+"familiar with the notion of Hibernate Core filters, the API is very similar."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:350
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"bestDriver\");\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")."
+"setParameter( \"login\", \"andre\" );\n"
+"                        fullTextQuery.list(); //returns only best drivers "
+"where andre has credentials"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:352
+#, no-c-format
+msgid ""
+"In this example we enabled 2 filters on top of this query. You can enable "
+"(or disable) as many filters as you want."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:355
+#, no-c-format
+msgid ""
+"Declaring filters is done through the <classname>@FullTextFilterDef</"
+"classname> annotation. This annotation can be on any <literal>@Indexed</"
+"literal> entity regardless of the filter operation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:360
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDefs( {\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"bestDriver\", impl = BestDriversFilter.class, cache=false)</emphasis>, //"
+"actual Filter implementation\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"security\", impl = SecurityFilterFactory.class)</emphasis> //Filter "
+"factory with parameters\n"
+"                        })\n"
+"                        public class Driver { ... }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:362
+#, no-c-format
+msgid "Each named filter points to an actual filter implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:364
+#, no-c-format
+msgid ""
+"public class BestDriversFilter extends <emphasis\n"
+"                                                                                role="
+"\"bold\">org.apache.lucene.search.Filter</emphasis> {\n"
+"                        \n"
+"                        public BitSet bits(IndexReader reader) throws "
+"IOException {\n"
+"                        BitSet bitSet = new BitSet( reader.maxDoc() );\n"
+"                        TermDocs termDocs = reader.termDocs( new Term(\"score"
+"\", \"5\") );\n"
+"                        while ( termDocs.next() ) {\n"
+"                        bitSet.set( termDocs.doc() );\n"
+"                        }\n"
+"                        return bitSet;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:366
+#, no-c-format
+msgid ""
+"<classname>BestDriversFilter</classname> is an example of a simple Lucene "
+"filter that will filter all results to only return drivers whose score is 5. "
+"The filters must have a no-arg constructor when referenced in a "
+"<literal>FulltextFilterDef.impl</literal>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:371
+#, no-c-format
+msgid ""
+"The <literal>cache</literal> flag, defaulted to <literal>true</literal>, "
+"tells Hibernate Search to search the filter in its internal cache and reuses "
+"it if found."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:375
+#, no-c-format
+msgid ""
+"Note that, usually, filter using the <classname>IndexReader</classname> are "
+"wrapped in a Lucene <classname>CachingWrapperFilter</classname> to benefit "
+"from some caching speed improvement. If your Filter creation requires "
+"additional steps or if the filter you are willing to use does not have a no-"
+"arg constructor, you can use the factory pattern:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:382
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDef(name = \"bestDriver\", impl = "
+"BestDriversFilterFactory.class) //Filter factory\n"
+"                        public class Driver { ... }\n"
+"                        \n"
+"                        public class BestDriversFilterFactory {\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Factory</emphasis>\n"
+"                        public Filter getFilter() {\n"
+"                        //some additional steps to cache the filter results "
+"per IndexReader\n"
+"                        Filter bestDriversFilter = new BestDriversFilter();\n"
+"                        return new CachingWrapperFilter(bestDriversFilter);\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:384
+#, no-c-format
+msgid ""
+"Hibernate Search will look for a <literal>@Factory</literal> annotated "
+"method and use it to build the filter instance. The factory must have a no-"
+"arg constructor. For people familiar with JBoss Seam, this is similar to the "
+"component factory pattern, but the annotation is different!"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:390
+#, no-c-format
+msgid ""
+"Named filters comes in handy where the filters have parameters. For example "
+"a security filter needs to know which credentials you are willing to filter "
+"by:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:394
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")"
+"<emphasis role=\"bold\">.setParameter( \"level\", 5 )</emphasis>;"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:396
+#, no-c-format
+msgid ""
+"Each parameter name should have an associated setter on either the filter or "
+"filter factory of the targeted named filter definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:399
+#, no-c-format
+msgid ""
+"public class SecurityFilterFactory {\n"
+"                        private Integer level;\n"
+"                        \n"
+"                        /**\n"
+"                        * injected parameter\n"
+"                        */\n"
+"                        <emphasis role=\"bold\">public void setLevel(Integer "
+"level)</emphasis> {\n"
+"                        this.level = level;\n"
+"                        }\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Key\n"
+"                                public FilterKey getKey()</emphasis> {\n"
+"                        StandardFilterKey key = new StandardFilterKey();\n"
+"                        key.addParameter( level );\n"
+"                        return key;\n"
+"                        }\n"
+"                        \n"
+"                        @Factory\n"
+"                        public Filter getFilter() {\n"
+"                        Query query = new TermQuery( new Term(\"level\", "
+"level.toString() ) );\n"
+"                        return new CachingWrapperFilter( new "
+"QueryWrapperFilter(query) );\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:401
+#, no-c-format
+msgid ""
+"Note the method annotated <classname>@Key</classname> and returning a "
+"<classname>FilterKey</classname> object. The returned object has a special "
+"contract: the key object must implement equals / hashcode so that 2 keys are "
+"equals if and only if the given Filter types are the same and the set of "
+"parameters are the same. In other words, 2 filter keys are equal if and only "
+"if the filters from which the keys are generated can be interchanged. The "
+"key object is used as a key in the cache mechanism."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:410
+#, no-c-format
+msgid "<classname>@Key</classname> methods are needed only if:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:414
+#, no-c-format
+msgid "you enabled the filter caching system (enabled by default)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:419
+#, no-c-format
+msgid "your filter has parameters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:423
+#, no-c-format
+msgid ""
+"In most cases, using the <literal>StandardFilterKey</literal> implementation "
+"will be good enough. It delegates the equals/hashcode implementation to each "
+"of the parameters equals and hashcode methods."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:428
+#, no-c-format
+msgid ""
+"Why should filters be cached? There are two area where filter caching shines:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:433
+#, no-c-format
+msgid ""
+"the system does not update the targeted entity index often (in other words, "
+"the IndexReader is reused a lot)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:438
+#, no-c-format
+msgid ""
+"the Filter BitSet is expensive to compute (compared to the time spent to "
+"execute the query)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:443
+#, no-c-format
+msgid ""
+"Cache is enabled by default and use the notion of SoftReferences to dispose "
+"memory when needed. To adjust the size of the hard reference cache, use "
+"<literal>hibernate.search.filter.cache_strategy.size</literal> (defaults to "
+"128). Don't forget to use a <classname>CachingWrapperFilter</classname> when "
+"the filter is cacheable and the Filter's bits methods makes use of "
+"IndexReader."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:450
+#, no-c-format
+msgid ""
+"For advance use of filter caching, you can implement your own "
+"<classname>FilterCachingStrategy</classname>. The classname is defined by "
+"<literal>hibernate.search.filter.cache_strategy</literal>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:456
+#, no-c-format
+msgid "Optimizing the query process"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:458
+#, no-c-format
+msgid "Query performance depends on several criteria:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:462
+#, no-c-format
+msgid "the Lucene query itself: read the literature on this subject"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:467
+#, no-c-format
+msgid ""
+"the number of object loaded: use pagination (always ;-) ) or index "
+"projection (if needed)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:472
+#, no-c-format
+msgid ""
+"the way Hibernate Search interacts with the Lucene readers: defines the "
+"appropriate <xref linkend=\"Hibernate_Search-Architecture-Reader_Strategy\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:480
+#, no-c-format
+msgid "Native Lucene Queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:482
+#, no-c-format
+msgid ""
+"If you wish to use some specific features of Lucene, you can always run "
+"Lucene specific queries. Check <xref linkend=\"Hibernate_Search-Lucene_Native"
+"\"/> for more informations."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Revision_History.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Revision_History.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/es-ES/Revision_History.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,33 @@
+# Language es-ES translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Danielle</firstname> <surname>Coulson</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Content reformat"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Architecture.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Architecture.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Architecture.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,367 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture.xml:6
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:9
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:11
+#, no-c-format
+msgid ""
+"Hibernate Search consists of an indexing and an index search engine. Both "
+"are backed by Apache Lucene."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:14
+#, no-c-format
+msgid ""
+"When an entity is inserted, updated or removed in/from the database, "
+"Hibernate Search keeps track of this event (through the Hibernate event "
+"system) and schedules an index update. All the index updates are handled for "
+"you without you having to use the Apache Lucene APIs (see <xref linkend="
+"\"Hibernate_Search-Configuration-Event\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:19
+#, no-c-format
+msgid ""
+"To interact with Apache Lucene indexes, Hibernate Search has the notion of "
+"<classname>DirectoryProvider</classname>s. A directory provider will manage "
+"a given Lucene <classname>Directory</classname> type. You can configure "
+"directory providers to adjust the directory target (see <xref linkend="
+"\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:24
+#, no-c-format
+msgid ""
+"Hibernate Search can also use the Lucene index to search an entity and "
+"return a list of managed entities saving you the tedious object to Lucene "
+"document mapping. The same persistence context is shared between Hibernate "
+"and Hibernate Search; as a matter of fact, the Search Session is built on "
+"top of the Hibernate Session. The application code use the unified "
+"<classname>org.hibernate.Query</classname> or <classname>javax.persistence."
+"Query</classname> APIs exactly the way a HQL, JPA-QL or native queries would "
+"do."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:33
+#, no-c-format
+msgid ""
+"To be more efficient, Hibernate Search batches the write interactions with "
+"the Lucene index. There is currently two types of batching depending on the "
+"expected scope."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:37
+#, no-c-format
+msgid ""
+"Outside a transaction, the index update operation is executed right after "
+"the actual database operation. This scope is really a no scoping setup and "
+"no batching is performed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:41
+#, no-c-format
+msgid ""
+"It is however recommended, for both your database and Hibernate Search, to "
+"execute your operation in a transaction be it JDBC or JTA. When in a "
+"transaction, the index update operation is scheduled for the transaction "
+"commit and discarded in case of transaction rollback. The batching scope is "
+"the transaction. There are two immediate benefits:"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:50
+#, no-c-format
+msgid ""
+"Performance: Lucene indexing works better when operation are executed in "
+"batch."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:55
+#, no-c-format
+msgid ""
+"ACIDity: The work executed has the same scoping as the one executed by the "
+"database transaction and is executed if and only if the transaction is "
+"committed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:60
+#, no-c-format
+msgid ""
+"Disclaimer, the work in not ACID in the strict sense of it, but ACID "
+"behavior is rarely useful for full text search indexes since they can be "
+"rebuilt from the source at any time."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:67
+#, no-c-format
+msgid ""
+"You can think of those two scopes (no scope vs transactional) as the "
+"equivalent of the (infamous) auto-commit vs transactional behavior. From a "
+"performance perspective, the <emphasis>in transaction</emphasis> mode is "
+"recommended. The scoping choice is made transparently: Hibernate Search "
+"detects the presence of a transaction and adjust the scoping."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:74
+#, no-c-format
+msgid ""
+"Hibernate Search works perfectly fine in the Hibernate / EntityManager long "
+"conversation pattern aka. atomic conversation."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:80
+#, no-c-format
+msgid ""
+"Depending on user demand, additional scoping will be considered, the "
+"pluggability mechanism being already in place."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:87
+#, no-c-format
+msgid "Back End"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:89
+#, no-c-format
+msgid ""
+"Hibernate Search offers the ability to let the scoped work being processed "
+"by different back ends. Two back ends are provided out of the box for two "
+"different scenarios."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:96
+#, no-c-format
+msgid ""
+"Hibernate Search is an extensible architecture. While not yet part of the "
+"public API, plugging a third party back end is possible. Feel free to drop "
+"ideas to <literal>hibernate-dev at lists.jboss.org</literal>."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:102
+#, no-c-format
+msgid "Lucene"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:104
+#, no-c-format
+msgid ""
+"In this mode, all index update operations applied on a given node (JVM) will "
+"be executed to the Lucene directories (through the directory providers) by "
+"the same node. This mode is typically used in non clustered environment or "
+"in clustered environments where the directory store is shared."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:120
+#, no-c-format
+msgid ""
+"This mode targets non clustered applications, or clustered applications "
+"where the Directory is taking care of the locking strategy."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:126
+#, no-c-format
+msgid ""
+"The main advantage is simplicity and immediate visibility of the changes in "
+"Lucene queries (a requirement is some applications)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:133
+#, no-c-format
+msgid "<title>JMS</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:135
+#, no-c-format
+msgid ""
+"All index update operations applied on a given node are sent to a JMS queue. "
+"A unique reader will then process the queue and update the master Lucene "
+"index. The master index is then replicated on a regular basis to the slave "
+"copies. This is known as the master / slaves pattern. The master is the sole "
+"responsible for updating the Lucene index. The slaves can accept read as "
+"well as write operations. However, they only process the read operation on "
+"their local index copy and delegate the update operations to the master."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:153
+#, no-c-format
+msgid ""
+"This mode targets clustered environments where throughput is critical, and "
+"index update delays are affordable. Reliability is ensured by the JMS "
+"provider and by having the slaves working on a local copy of the index."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:161
+#, no-c-format
+msgid "Work Execution"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:163
+#, no-c-format
+msgid ""
+"The indexing work (done by the back end) can be executed synchronously with "
+"the transaction commit (or update operation if out of transaction), or "
+"asynchronously."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:168
+#, no-c-format
+msgid "Synchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:170
+#, no-c-format
+msgid ""
+"This is the safe mode where the back end work is executed in concert with "
+"the transaction commit. Under highly concurrent environment, this can lead "
+"to throughput limitations (due to the Apache Lucene lock mechanism) and it "
+"can increase the system response time if the backend is significantly slower "
+"than the transactional process and if a lot of IO operations are involved."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:179
+#, no-c-format
+msgid "Asynchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:181
+#, no-c-format
+msgid ""
+"This mode delegates the work done by the back end to a different thread. "
+"That way, throughput and response time are (to a certain extend) "
+"decorrelated from the back end performance. The drawback is that a small "
+"delay appears between the transaction commit and the index update and a "
+"small overhead is introduced to deal with thread management."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:187
+#, no-c-format
+msgid ""
+"It is recommended to use synchronous execution first and evaluate "
+"asynchronous execution if performance problems occur and after having set up "
+"a proper benchmark (i.e. not a lonely cowboy hitting the system in a "
+"completely unrealistic way)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:195
+#, no-c-format
+msgid "Reader Strategy"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:197
+#, no-c-format
+msgid ""
+"When executing a query, Hibernate Search interacts with the Apache Lucene "
+"indexes through a reader strategy. Choosing a reader strategy will depend on "
+"the profile of the application (frequent updates, read mostly, asynchronous "
+"index update etc). See also"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:204
+#, no-c-format
+msgid "Shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:206
+#, no-c-format
+msgid ""
+"With this strategy, Hibernate Search will share the same IndexReader, for a "
+"given Lucene index, across multiple queries and threads provided that the "
+"IndexReader is still up-to-date. If the IndexReader is not up-to-date, a new "
+"one is opened and provided. Generally speaking, this strategy provides much "
+"better performances than the <literal>not-shared</literal> strategy. It is "
+"especially true if the number of updates is much lower than the reads. This "
+"strategy is the default."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:217
+#, no-c-format
+msgid "Not-shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:219
+#, no-c-format
+msgid ""
+"Every time a query is executed, a Lucene IndexReader is opened. This "
+"strategy is not the most efficient since opening and warming up an "
+"IndexReader can be a relatively expensive operation."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:225
+#, no-c-format
+msgid "Custom"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:227
+#, no-c-format
+msgid ""
+"You can write your own reader strategy that suits your application needs by "
+"implementing <classname>org.hibernate.search.reader.ReaderProvider</"
+"classname>. The implementation must be thread safe."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:233
+#, no-c-format
+msgid ""
+"Some additional strategies are planned in future versions of Hibernate Search"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Author_Group.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Author_Group.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,28 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Batch_Index.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Batch_Index.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Batch_Index.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,211 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Batch_Index.xml:6
+#, no-c-format
+msgid "Manual Indexing"
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:9
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:11
+#, no-c-format
+msgid ""
+"It is sometimes useful to index an object even if this object is not "
+"inserted nor updated to the database. This is especially true when you want "
+"to build your index for the first time. You can achieve that goal using the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.index(customer);</"
+"emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:18
+#, no-c-format
+msgid ""
+"For maximum efficiency, Hibernate Search batches index operations and "
+"executes them at commit time (Note: you don't need to use <classname>org."
+"hibernate.Transaction</classname> in a JTA environment)."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:23
+#, no-c-format
+msgid ""
+"If you expect to index a lot of data, you need to be careful about memory "
+"consumption: since all documents are kept in a queue until the transaction "
+"commit, you can potentially face an <classname>OutOfMemoryException</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:28
+#, no-c-format
+msgid ""
+"To avoid that, you can set up the <literal>hibernate.search.worker."
+"batch_size</literal> property to a sensitive value: all index operations are "
+"queued until <literal>batch_size</literal> is reached. Every time "
+"<literal>batch_size</literal> is reached (or if the transaction is "
+"committed), the queue is processed (freeing memory) and emptied. Be aware "
+"that the changes cannot be rolled-back if the number of index elements goes "
+"beyond <literal>batch_size</literal>. Be also aware that the queue limits "
+"are also applied on regular transparent indexing (and not only when "
+"<literal>session.index()</literal> is used). That's why a sensitive "
+"<literal>batch_size</literal> value is expected."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:40
+#, no-c-format
+msgid ""
+"Other parameters which also can affect indexing time and memory consumption "
+"are <literal>hibernate.search.[default|&lt;indexname&gt;].batch."
+"merge_factor</literal> , <literal>hibernate.search.[default|&lt;"
+"indexname&gt;].batch.max_merge_docs</literal> and <literal>hibernate.search."
+"[default|&lt;indexname&gt;].batch.max_buffered_docs</literal> . These "
+"parameters are Lucene specific and Hibernate Search is just passing these "
+"parameters through - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:50
+#, no-c-format
+msgid ""
+"Here is an especially efficient way to index a given class (useful for index "
+"(re)initialization):"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:53
+#, no-c-format
+msgid ""
+"fullTextSession.setFlushMode(FlushMode.MANUAL);\n"
+"                fullTextSession.setCacheMode(CacheMode.IGNORE);\n"
+"                transaction = fullTextSession.beginTransaction();\n"
+"                //Scrollable results will avoid loading too many objects in "
+"memory\n"
+"                ScrollableResults results = fullTextSession.createCriteria"
+"( Email.class ).scroll(\n"
+"                ScrollMode.FORWARD_ONLY );\n"
+"                int index = 0;\n"
+"                while( results.next() ) {\n"
+"                index++;\n"
+"                fullTextSession.index( results.get(0) ); //index each "
+"element\n"
+"                if (index % batchSize == 0) s.clear(); //clear every "
+"batchSize since the queue is processed\n"
+"                }\n"
+"                transaction.commit();"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:55
+#, no-c-format
+msgid ""
+"It is critical that <literal>batchSize</literal> in the previous example "
+"matches the <literal>batch_size</literal> value described previously."
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:61
+#, no-c-format
+msgid "Purging"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:63
+#, no-c-format
+msgid ""
+"It is equally possible to remove an entity or all entities of a given type "
+"from a Lucene index without the need to physically remove them from the "
+"database. This operation is named purging and is done through the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.purge( Customer."
+"class, customer.getId() );</emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:70
+#, no-c-format
+msgid ""
+"Purging will remove the entity with the given id from the Lucene index but "
+"will not touch the database."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:73
+#, no-c-format
+msgid ""
+"If you need to remove all entities of a given type, you can use the "
+"<command>purgeAll</command> method."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:76
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                <emphasis role=\"bold\">fullTextSession.purgeAll( Customer."
+"class );</emphasis>\n"
+"                //optionally optimize the index\n"
+"                //fullTextSession.getSearchFactory().optimize( Customer."
+"class );\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:78
+#, no-c-format
+msgid "It is recommended to optimize the index after such an operation."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:82
+#, no-c-format
+msgid ""
+"Methods <command>index</command>, <command>purge</command> and "
+"<command>purgeAll</command> are available on "
+"<classname>FullTextEntityManager</classname> as well"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Book_Info.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Book_Info.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,54 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate Search Reference Guide CP04 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "Apache <trademark>Lucene</trademark> Integration"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:8
+#, no-c-format
+msgid ""
+"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 4 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is a Reference Guide to Hibernate Search for JBoss Enterprise "
+"Application Platform 4.3.0 CP04 FP01"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:24
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:29
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Configuration.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Configuration.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Configuration.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1155 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuration.xml:6
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:9
+#, no-c-format
+msgid "Directory Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:11
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. The Directory implementation can be customized, but Lucene "
+"comes bundled with a file system (<literal>FSDirectoryProvider</literal>) "
+"and a in memory (<literal>RAMDirectoryProvider</literal>) implementation. "
+"Hibernate Search has the notion of <literal>DirectoryProvider</literal> that "
+"handles the configuration and the initialization of the Lucene Directory."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:20
+#, no-c-format
+msgid ""
+"List of built-in Directory Providers in the namespace of org.hibernate."
+"search.store."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:25
+#, no-c-format
+msgid "Class"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:27 Configuration.xml:243 Configuration.xml:528
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:29
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:35
+#, no-c-format
+msgid "FSDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:37
+#, no-c-format
+msgid ""
+"File system based directory. The directory used will be &lt;indexBase&gt;/"
+"&lt; <literal>@Indexed.name</literal> &gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:41
+#, no-c-format
+msgid "<literal>indexBase</literal> : Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:42 Configuration.xml:60 Configuration.xml:85
+#, no-c-format
+msgid ""
+"<literal>indexName</literal>: override @Index.name (useful for sharded "
+"indexes)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:47
+#, no-c-format
+msgid "FSMasterDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:49
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider. It also copies the "
+"index to a source directory (aka copy directory) on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:52 Configuration.xml:77
+#, no-c-format
+msgid ""
+"The recommended value for the refresh period is (at least) 50% higher that "
+"the time to copy the information (default 3600 seconds - 60 minutes)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:53 Configuration.xml:79
+#, no-c-format
+msgid ""
+"Note that the copy is based on an incremental copy mechanism reducing the "
+"average copy time."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:55
+#, no-c-format
+msgid ""
+"DirectoryProvider typically used on the master node in a JMS back end "
+"cluster."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:56
+#, no-c-format
+msgid ""
+"<entry>DirectoryProvider typically used on slave nodes using a JMS back end."
+"</entry>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:59 Configuration.xml:84
+#, no-c-format
+msgid "<literal>indexBase</literal>: Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:62 Configuration.xml:87
+#, no-c-format
+msgid "<literal>sourceBase</literal>: Source (copy) base directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:63 Configuration.xml:88
+#, no-c-format
+msgid ""
+"<literal>source</literal>: Source directory suffix (default to "
+"<literal>@Indexed.name</literal>). The actual source directory name being "
+"<filename>&lt;sourceBase&gt;/&lt;source&gt;</filename>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:67 Configuration.xml:92
+#, no-c-format
+msgid ""
+"refresh: refresh period in second (the copy will take place every refresh "
+"seconds)."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:72
+#, no-c-format
+msgid "FSSlaveDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:74
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider, but retrieves a "
+"master version (source) on a regular basis. To avoid locking and "
+"inconsistent search results, 2 local copies are kept."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:81
+#, no-c-format
+msgid ""
+"<para>DirectoryProvider typically used on slave nodes using a JMS back end.</"
+"para>"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:97
+#, no-c-format
+msgid "RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:99
+#, no-c-format
+msgid ""
+"Memory based directory, the directory will be uniquely identified (in the "
+"same deployment unit) by the <literal>@Indexed.name</literal> element"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:103
+#, no-c-format
+msgid "none"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:109
+#, no-c-format
+msgid ""
+"If the built-in directory providers does not fit your needs, you can write "
+"your own directory provider by implementing the <classname>org.hibernate."
+"store.DirectoryProvider</classname> interface"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:114
+#, no-c-format
+msgid ""
+"Each indexed entity is associated to a Lucene index (an index can be shared "
+"by several entities but this is not usually the case). You can configure the "
+"index through properties prefixed by <command>hibernate.search.</"
+"command><replaceable>indexname</replaceable> . Default properties inherited "
+"to all indexes can be defined using the prefix <command>hibernate.search."
+"default.</command>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:121
+#, no-c-format
+msgid ""
+"To define the directory provider of a given index, you use the property "
+"<literal>hibernate.search.<replaceable>indexname</replaceable>."
+"directory_provider </literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:125
+#, no-c-format
+msgid ""
+"hibernate.search.default.directory_provider  org.hibernate.search.store."
+"FSDirectoryProvider\n"
+"                        hibernate.search.default.indexBase=/usr/lucene/"
+"indexes\n"
+"                        \n"
+"                        hibernate.search.Rules.directory_provider  org."
+"hibernate.search.store.RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:127
+#, no-c-format
+msgid "applied on"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:129
+#, no-c-format
+msgid ""
+"@Indexed(name=\"Status\")\n"
+"public class Status { ... }\n"
+"                        \n"
+"@Indexed(name=\"Rules\")\n"
+"public class Rule { ... }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:131
+#, no-c-format
+msgid ""
+"will create a file system directory in <filename>/usr/lucene/indexes/Status</"
+"filename> where the Status entities will be indexed, and use an in memory "
+"directory named <literal>Rules</literal> where Rule entities will be indexed."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:136
+#, no-c-format
+msgid ""
+"You can easily define common rules like the directory provider and base "
+"directory, and override those default later on on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:140
+#, no-c-format
+msgid ""
+"Writing your own <classname>DirectoryProvider</classname>, you can utilize "
+"this configuration mechanism as well."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:145
+#, no-c-format
+msgid "Index Sharding"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:147
+#, no-c-format
+msgid ""
+"In some extreme cases involving huge indexes (in size), it is necessary to "
+"split (shard) the indexing data of a given entity type into several Lucene "
+"indexes. This solution is not recommended until you reach significant index "
+"sizes and index update time are slowing down. The main drawback of index "
+"sharding is that searches will end up being slower since more files have to "
+"be opened for a single search. In other words don't do it until you have "
+"problems :)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:155
+#, no-c-format
+msgid ""
+"Despite this strong warning, Hibernate Search allows you to index a given "
+"entity type into several sub indexes. Data is sharded into the different sub "
+"indexes thanks to an <classname>IndexShardingStrategy</classname>. By "
+"default, no sharding strategy is enabled, unless the number of shards is "
+"configured. To configure the number of shards use the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:162
+#, no-c-format
+msgid "hibernate.search.&lt;indexName&gt;.sharding_strategy.nbr_of_shards 5"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:164
+#, no-c-format
+msgid "This will use 5 different shards."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:166
+#, no-c-format
+msgid ""
+"The default sharding strategy, when shards are set up, splits the data "
+"according to the hash value of the id string representation (generated by "
+"the Field Bridge). This ensures a fairly balanced sharding. You can replace "
+"the strategy by implementing <literal>IndexShardingStrategy</literal> and by "
+"setting the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:173
+#, no-c-format
+msgid ""
+"hibernate.search.&lt;indexName&gt;.sharding_strategy my.shardingstrategy."
+"Implementation"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:175
+#, no-c-format
+msgid ""
+"Each shard has an independent directory provider configuration as described "
+"in <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>. The "
+"DirectoryProvider default name for the previous example are <literal>&lt;"
+"indexName&gt;.0</literal> to <literal>&lt;indexName&gt;.4</literal>. In "
+"other words, each shard has the name of it's owning index followed by "
+"<command>.</command> (dot) and its index number."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:183
+#, no-c-format
+msgid ""
+"hibernate.search.default.indexBase /usr/lucene/indexes\n"
+"                        \n"
+"                        hibernate.search.Animal.sharding_strategy."
+"nbr_of_shards 5\n"
+"                        hibernate.search.Animal.directory_provider org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        hibernate.search.Animal.0.indexName Animal00\n"
+"                        hibernate.search.Animal.3.indexBase /usr/lucene/"
+"sharded\n"
+"                        hibernate.search.Animal.3.indexName Animal03"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:185
+#, no-c-format
+msgid ""
+"This configuration uses the default id string hashing strategy and shards "
+"the Animal index into 5 sub-indexes. All sub-indexes are FSDirectoryProvider "
+"instances and the directory where each sub-index is stored is as followed:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:192
+#, no-c-format
+msgid ""
+"for subindex 0: /usr/lucene/indexes/Animal00 (shared indexBase but "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:197
+#, no-c-format
+msgid ""
+"for subindex 1: /usr/lucene/indexes/Animal.1 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:202
+#, no-c-format
+msgid ""
+"for subindex 2: /usr/lucene/indexes/Animal.2 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:207
+#, no-c-format
+msgid ""
+"for subindex 3: /usr/lucene/shared/Animal03 (overridden indexBase, "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:212
+#, no-c-format
+msgid ""
+"for subindex 4: /usr/lucene/indexes/Animal.4 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:219
+#, no-c-format
+msgid "Worker Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:221
+#, no-c-format
+msgid ""
+"It is possible to refine how Hibernate Search interacts with Lucene through "
+"the worker configuration. The work can be executed to the Lucene directory "
+"or sent to a JMS queue for later processing. When processed to the Lucene "
+"directory, the work can be processed synchronously or asynchronously to the "
+"transaction commit."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:227
+#, no-c-format
+msgid "You can define the worker configuration using the following properties"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:231
+#, no-c-format
+msgid "Worker Configuration (in the namespace of hibernate.worker)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:241 Configuration.xml:526
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:247
+#, no-c-format
+msgid "backend"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:249
+#, no-c-format
+msgid ""
+"Out of the box support for the Apache Lucene back end and the JMS back end. "
+"Default to <literal>lucene</literal>. Supports also <literal>jms</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:255
+#, no-c-format
+msgid "execution"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:257
+#, no-c-format
+msgid ""
+"Supports synchronous and asynchrounous execution. Default to "
+"<literal><literal>sync</literal></literal>. Supports also <literal>async</"
+"literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:263
+#, no-c-format
+msgid "thread_pool.size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:265
+#, no-c-format
+msgid ""
+"Defines the number of threads in the pool. useful only for asynchrounous "
+"execution. Default to 1."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:270
+#, no-c-format
+msgid "buffer_queue.max"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:272
+#, no-c-format
+msgid ""
+"Defines the maximal number of work queue if the thread poll is starved. "
+"Useful only for asynchrounous execution. Default to infinite. If the limit "
+"is reached, the work is done by the main thread."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:279
+#, no-c-format
+msgid "jndi.*"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:281
+#, no-c-format
+msgid ""
+"Defines the JNDI properties to initiate the InitialContext (if needed). JNDI "
+"is only used by the JMS back end."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:286
+#, no-c-format
+msgid "jms.connection_factory"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:289
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"connection factory from (<literal>java:/ConnectionFactory</literal> by "
+"default in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:296
+#, no-c-format
+msgid "jms.queue"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:298
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"queue from. The queue will be used to post work messages."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:304
+#, no-c-format
+msgid "batch_size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:306
+#, no-c-format
+msgid ""
+"Defines the maximum number of elements indexed before flushing the "
+"transaction-bound queue. Default to 0 (i.e. no limit). See <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:317
+#, no-c-format
+msgid "JMS Master/Slave Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:319
+#, no-c-format
+msgid ""
+"This section describes in greater detail how to configure the Master / "
+"Slaves Hibernate Search architecture."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:323
+#, no-c-format
+msgid "Slave Nodes"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:325
+#, no-c-format
+msgid ""
+"Every index update operation is sent to a JMS queue. Index querying "
+"operations are executed on a local index copy."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:328
+#, no-c-format
+msgid ""
+"### slave configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local copy location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSSlaveDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                hibernate.search.worker.backend = jms\n"
+"                                hibernate.search.worker.jms."
+"connection_factory = java:/ConnectionFactory\n"
+"                                hibernate.search.worker.jms.queue = queue/"
+"hibernatesearch\n"
+"                                #optional jndi configuration (check your JMS "
+"provider for more information)\n"
+"                                \n"
+"                                ## Optional asynchronous execution strategy\n"
+"                                # org.hibernate.worker.execution = async\n"
+"                                # org.hibernate.worker.thread_pool.size = 2\n"
+"                                # org.hibernate.worker.buffer_queue.max = 50"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:330
+#, no-c-format
+msgid "A file system local copy is recommended for faster search results."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:333 Configuration.xml:345
+#, no-c-format
+msgid "The refresh period should be higher that the expected time copy."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:338
+#, no-c-format
+msgid "Master node"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:340
+#, no-c-format
+msgid ""
+"Every index update operation is taken from a JMS queue and executed. The "
+"master index(es) is(are) copied on a regular basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:343
+#, no-c-format
+msgid ""
+"### master configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location where information "
+"is copied to\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local master location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSMasterDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                #Backend is the default lucene one"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:348
+#, no-c-format
+msgid ""
+"In addition to the Hibernate Search framework configuration, a Message "
+"Driven Bean should be written and set up to process index works queue "
+"through JMS."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:352
+#, no-c-format
+msgid ""
+"@MessageDriven(activationConfig = {\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destinationType\", propertyValue=\"javax.jms.Queue\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destination\", propertyValue=\"queue/hiebrnatesearch\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"DLQMaxResent\", propertyValue=\"1\")\n"
+"                                } )\n"
+"                                public class MDBSearchController extends "
+"AbstractJMSHibernateSearchController implements MessageListener {\n"
+"                                @PersistenceContext EntityManager em;\n"
+"                                \n"
+"                                //method retrieving the appropriate session\n"
+"                                protected Session getSession() {\n"
+"                                return (Session) em.getDelegate();\n"
+"                                }\n"
+"                                \n"
+"                                //potentially close the session opened in "
+"#getSession(), not needed here\n"
+"                                protected void cleanSessionIfNeeded(Session "
+"session) \n"
+"                                }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:354
+#, no-c-format
+msgid ""
+"This example inherit the abstract JMS controller class available and "
+"implements a JavaEE 5 MDB. This implementation is given as an example and, "
+"while most likely more complex, can be adjusted to make use of non Java EE "
+"Message Driven Beans. For more information about the <command>getSession()</"
+"command> and <command>cleanSessionIfNeeded()</command>, please check "
+"<classname>AbstractJMSHibernateSearchController</classname>'s javadoc."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:364
+#, no-c-format
+msgid ""
+"Hibernate Search test suite makes use of JBoss Embedded to test the JMS "
+"integration. It allows the unit test to run both the MDB container and JBoss "
+"Messaging (JMS provider) in a standalone way (marketed by some as "
+"\"lightweight\")."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:373
+#, no-c-format
+msgid "Reader Strategy Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:375
+#, no-c-format
+msgid ""
+"The different reader strategies are described in <xref linkend="
+"\"Hibernate_Search-Architecture-Reader_Strategy\"/>. The default reader "
+"strategy is <literal>shared</literal>. This can be adjusted:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:378
+#, no-c-format
+msgid "hibernate.search.reader.strategy = not-shared"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:380
+#, no-c-format
+msgid ""
+"Adding this property switch to the <literal>non shared</literal> strategy."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:383
+#, no-c-format
+msgid "Or if you have a custom reader strategy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:385
+#, no-c-format
+msgid "hibernate.search.reader.strategy = my.corp.myapp.CustomReaderProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:387
+#, no-c-format
+msgid ""
+"where <classname>my.corp.myapp.CustomReaderProvider</classname> is the "
+"custom strategy implementation"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:392
+#, no-c-format
+msgid "Enabling Hibernate Search and automatic indexing"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:395
+#, no-c-format
+msgid "Enabling Hibernate Search"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:397
+#, no-c-format
+msgid ""
+"Hibernate Search is enabled out of the box when using Hibernate Annotations "
+"or Hibernate EntityManager. If, for some reason you need to disable it, set "
+"<literal>hibernate.search.autoregister_listeners</literal> to false. Note "
+"that there is no performance runtime when the listeners are enabled while no "
+"entity is indexable."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:404
+#, no-c-format
+msgid ""
+"To enable Hibernate Search in Hibernate Core, add the "
+"<literal>FullTextIndexEventListener</literal> for the three Hibernate events "
+"that occur after changes are executed to the database. Once again, such a "
+"configuration is not useful with Hibernate Annotations or Hibernate "
+"EntityManager."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:410
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                &lt;session-factory&gt;\n"
+"                                ...\n"
+"                                &lt;event type=\"post-update\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-insert\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-delete\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;/session-factory&gt;\n"
+"                                &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:412
+#, no-c-format
+msgid ""
+"Be sure to add the appropriate jar files in your classpath. Check "
+"<literal>lib/README.TXT</literal> for the list of third party libraries. A "
+"typical installation on top of Hibernate Annotations will add:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:418
+#, no-c-format
+msgid "<filename>hibernate-search.jar</filename>: the core engine"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:423
+#, no-c-format
+msgid "<filename>lucene-core-*.jar</filename>: Lucene core engine"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:429
+#, no-c-format
+msgid "Hibernate Core 3.2.6 and beyond"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:431
+#, no-c-format
+msgid ""
+"If you use Hibernate Core 3.2.6 and beyond, make sure to add three "
+"additional event listeners that cope with collection events"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:435
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                        &lt;session-factory&gt;\n"
+"                                        ...\n"
+"                                        &lt;event type=\"post-collection-"
+"recreate\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"remove\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"update\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;/session-factory&gt;\n"
+"                                        &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:437
+#, no-c-format
+msgid ""
+"Those additional event listeners have been introduced in Hibernate 3.2.6. "
+"note the <classname>FullTextIndexCollectionEventListener</classname> usage. "
+"You need to explicitly reference those event listeners unless you use "
+"Hibernate Annotations 3.3.1 and above."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:446
+#, no-c-format
+msgid "Automatic indexing"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:448
+#, no-c-format
+msgid ""
+"By default, every time an object is inserted, updated or deleted through "
+"Hibernate, Hibernate Search updates the according Lucene index. It is "
+"sometimes desirable to disable that features if either your index is read-"
+"only or if index updates are done in a batch way (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:453
+#, no-c-format
+msgid "To disable event based indexing, set"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:455
+#, no-c-format
+msgid "hibernate.search.indexing_strategy manual"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:458
+#, no-c-format
+msgid ""
+"In most case, the JMS backend provides the best of both world, a lightweight "
+"event based system keeps track of all changes in the system, and the "
+"heavyweight indexing process is done by a separate process or machine."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:467
+#, no-c-format
+msgid "Tuning Lucene indexing performance"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:469
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to tune the Lucene indexing performance by "
+"specifying a set of parameters which are passed through to underlying Lucene "
+"<literal>IndexWriter</literal> such as <literal>mergeFactor</literal>, "
+"<literal>maxMergeDocs</literal> and <literal>maxBufferedDocs</literal>. You "
+"can specify these parameters either as default values applying for all "
+"indexes or on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:477
+#, no-c-format
+msgid ""
+"There are two sets of parameters allowing for different performance settings "
+"depending on the use case. During indexing operations triggered by database "
+"modifications, the following ones are used: <itemizedlist> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"merge_factor</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_merge_docs</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_buffered_docs</literal></para> </listitem> </itemizedlist>When indexing "
+"occurs via <literal>FullTextSession.index()</literal> (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>), the following properties are used:"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:495
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.merge_factor"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:499
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:503
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:507
+#, no-c-format
+msgid ""
+"Unless the corresponding <literal>.batch</literal> property is explicitly "
+"set, the value will default to the <literal>.transaction</literal> property."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:511
+#, no-c-format
+msgid ""
+"For more information about Lucene indexing performances, please refer to the "
+"Lucene documentation."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:515
+#, no-c-format
+msgid ""
+"List of indexing performance properties in the namespace of hibernate.search."
+"[default|&lt;indexname&gt;]"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:530
+#, no-c-format
+msgid "Default Value"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:536
+#, no-c-format
+msgid "transaction.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:538 Configuration.xml:578
+#, no-c-format
+msgid "Controls segment merge frequency and size."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:539 Configuration.xml:579
+#, no-c-format
+msgid ""
+"Determines how often segment indices are merged when insertion occurs. With "
+"smaller values, less RAM is used while indexing, and searches on unoptimized "
+"indices are faster, but indexing speed is slower. With larger values, more "
+"RAM is used during indexing, and while searches on unoptimized indices are "
+"slower, indexing is faster. Thus larger values (&gt; 10) are best for batch "
+"index creation, and smaller values (&lt; 10) for indices that are "
+"interactively maintained. The value must no be lower than 2."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:547 Configuration.xml:557 Configuration.xml:569
+#, no-c-format
+msgid ""
+"Used by Hibernate Search during index update operations as part of database "
+"modifications."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:550 Configuration.xml:572 Configuration.xml:590
+#: Configuration.xml:611
+#, no-c-format
+msgid "<entry>10</entry>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:554
+#, no-c-format
+msgid "transaction.max_merge_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:556 Configuration.xml:596
+#, no-c-format
+msgid "Defines the largest number of documents allowed in a segment."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:560 Configuration.xml:600
+#, no-c-format
+msgid "Unlimited (Integer.MAX_VALUE)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:564
+#, no-c-format
+msgid "transaction. max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:567 Configuration.xml:606
+#, no-c-format
+msgid ""
+"Controls the amount of documents buffered in memory during indexing. The "
+"bigger the more RAM is consumed."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:576
+#, no-c-format
+msgid "batch.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:587 Configuration.xml:597 Configuration.xml:608
+#, no-c-format
+msgid "Used during indexing via <literal>FullTextSession.index()</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:594
+#, no-c-format
+msgid "batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:604
+#, no-c-format
+msgid "batch.max_buffered_docs"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Feedback.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Feedback.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Feedback.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,34 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Getting_Started.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Getting_Started.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Getting_Started.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,606 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"Welcome to Hibernate Search! The following chapter will guide you through "
+"the initial steps required to integrate Hibernate Search into an existing "
+"Hibernate enabled application. In case you are a Hibernate first timer we "
+"recommend you start <ulink url=\"http://hibernate.org/152.html\">here</"
+"ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "System Requirements"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:18
+#, no-c-format
+msgid "System requirements"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:23
+#, no-c-format
+msgid "Java Runtime"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:25
+#, no-c-format
+msgid ""
+"A JDK or JRE version <emphasis>5</emphasis> or greater. You can download a "
+"Java Runtime for Windows/Linux/Solaris <ulink url=\"http://java.sun.com/"
+"javase/downloads/\"> here </ulink>."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:31
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"<literal>hibernate-search.jar</literal> and all dependencies from the "
+"<literal>lib</literal> directory of the Hibernate Search distribution, "
+"especially lucene."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:39
+#, no-c-format
+msgid "Hibernate Core"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:41
+#, no-c-format
+msgid ""
+"These instructions have been tested against Hibernate 3.2.x. Next to the "
+"main <literal>hibernate3.jar</literal> you will need all required libraries "
+"from the <literal>lib</literal> directory of the distribution. Refer to "
+"<literal>README.txt</literal> in the <literal>lib</literal> directory of the "
+"distribution to determine the minimum runtime requirements."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:50
+#, no-c-format
+msgid "Hibernate Annotations"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:52
+#, no-c-format
+msgid ""
+"Although Hibernate Search can be used without Hibernate Annotations the "
+"following instructions use them for ease of use. The tutorial is tested "
+"against version 3.3.x of Hibernate Annotations."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:60
+#, no-c-format
+msgid ""
+"You can download all dependencies from the Hibernate <ulink url=\"http://www."
+"hibernate.org/6.html\">download site</ulink>. You can also verify the "
+"dependency versions against the <ulink url=\"http://www.hibernate.org/6."
+"html#A3\">Hibernate Compatibility Matrix</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:65
+#, no-c-format
+msgid "Maven"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:67
+#, no-c-format
+msgid ""
+"Instead of managing all dependencies yourself, maven users are able to use "
+"the <ulink url=\"http://repository.jboss.com/maven2\">JBoss maven "
+"repository</ulink>. Just add the JBoss repository url to the "
+"<emphasis>repositories</emphasis> section of your <filename>pom.xml</"
+"filename> or <filename>settings.xml</filename>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:73
+#, no-c-format
+msgid ""
+"&lt;repository&gt;\n"
+"                           &lt;id&gt;repository.jboss.org&lt;/id&gt;\n"
+"                        &lt;name&gt;JBoss Maven Repository&lt;/name&gt;\n"
+"                        &lt;url&gt;http://repository.jboss.org/maven2&lt;/"
+"url&gt;\n"
+"                        &lt;layout&gt;default&lt;/layout&gt;\n"
+"                        &lt;/repository&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:75
+#, no-c-format
+msgid "Then add the following dependencies to your pom.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:77
+#, no-c-format
+msgid ""
+"&lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-search&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.0.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-annotations&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-entitymanager&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.1.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:79
+#, no-c-format
+msgid ""
+"Not all three dependencies are required. <emphasis>hibernate-search</"
+"emphasis> alone contains everything needed to use Hibernate Search. "
+"<emphasis>hibernate-annotations</emphasis> is only needed if you use non-"
+"Hibernate Search annotations, which are used in the examples of this "
+"tutorial. Note that <emphasis>hibernate-entitymanager</emphasis> is only "
+"required if you use Hibernate Search in conjunction with JPA."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:87
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:89
+#, no-c-format
+msgid ""
+"Once all required dependencies have been downloaded and added to your "
+"application, you will need to add some properties to your hibernate "
+"configuration file. If you are using Hibernate directly this can be done in "
+"<literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</"
+"literal>. If you are using Hibernate via JPA you can also add the properties "
+"to <literal>persistence.xml</literal>. The default properties are suitable "
+"for the standard use."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:92
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. Hibernate Search handles the initialization and configuration "
+"of a Lucene <literal>Directory</literal> instance via a "
+"<literal>DirectoryProvider</literal>. In this tutorial we will use a "
+"subclass of <literal>DirectoryProvider</literal> called "
+"<classname>FSDirectoryProvider</classname>. This will give us the ability to "
+"physically inspect the Lucene indexes created by Hibernate Search (e.g. via "
+"<ulink url=\"http://www.getopt.org/luke/\">Luke</ulink>). Once you have a "
+"working configuration you can start experimenting with other directory "
+"providers (see <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:103
+#, no-c-format
+msgid ""
+"Lets assume that your application contains the Hibernate managed class "
+"<classname>example.Book</classname> and you now want to add free text search "
+"capabilities to your application in order to search body and summary of the "
+"books contained in your database."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:108
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        private Integer id; \n"
+"                        private String body;  \n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:110
+#, no-c-format
+msgid ""
+"First you need to tell Hibernate Search which <classname>DirectoryProvider</"
+"classname> to use. This can be achieved by setting the <literal>hibernate."
+"search.default.directory_provider</literal> property. You also have to "
+"specify the default root directory for all indexes via <literal>hibernate."
+"search.default.indexBase</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:116
+#, no-c-format
+msgid ""
+"...\n"
+"                        # the default directory provider\n"
+"                        hibernate.search.default.directory_provider = org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        \n"
+"                        # the default base directory for the indecies\n"
+"                        hibernate.search.default.indexBase = /var/lucene/"
+"indexes    \n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:118
+#, no-c-format
+msgid ""
+"Now add three annotations to the <classname>Book</classname> class. The "
+"first annotation <literal>@Indexed</literal> marks <classname>Book</"
+"classname> as indexable. By design Hibernate Search needs to store an "
+"untokenized id in the index to ensure index unicity for a given entity. "
+"<literal>@DocumentId</literal> marks the property to use for this purpose. "
+"Most, if not all of the time, the property is the database primary key. "
+"Finally you will need to index the fields you wish to make searchable. In "
+"our example these fields are <literal>body</literal> and <literal>summary</"
+"literal>. Both properties get annotated with <literal>@Field</literal>. The "
+"property <literal>index=Index.TOKENIZED</literal> will ensure that the text "
+"will be tokenized using the default Lucene analyzer whereas "
+"<literal>store=Store.NO</literal> ensures that the actual data will not be "
+"stored in the index. Usually, tokenizing means chunking a sentence into "
+"individual words (and potentially excluding common words like <literal>a</"
+"literal>, <literal>the </literal>etc)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:135
+#, no-c-format
+msgid ""
+"These settings are sufficient for an initial test. For more details on "
+"entity mapping refer to <xref linkend=\"Hibernate_Search-Mapping-Entity\"/>. "
+"In case you want to store and retrieve the indexed data in order to avoid "
+"database roundtrips, refer to projections in"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:140
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        <emphasis role=\"bold\">@Indexed</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        <emphasis role=\"bold\">@DocumentId</emphasis>\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String body;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:144
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:146
+#, no-c-format
+msgid ""
+"Hibernate Search will index every entity persisted, updated or removed "
+"through Hibernate core transparently for the application. However, the data "
+"already present in your database needs to be indexed once to populate the "
+"Lucene index. Once you have added the above properties and annotations it is "
+"time to trigger an initial batch index of your books. You can achieve this "
+"by adding one of the following code examples to your code (see also <xref "
+"linkend=\"Hibernate_Search-Batch_Index\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:154 Getting_Started.xml:176
+#, no-c-format
+msgid "Example using Hibernate Session:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:156
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        List books = session.createQuery(\"from Book as book"
+"\").list();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextSession.index(book);\n"
+"                        }\n"
+"                        tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:158 Getting_Started.xml:180
+#, no-c-format
+msgid "Example using JPA:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:160
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        FullTextEntityManager fullTextEntityManager = Search."
+"createFullTextEntityManager(em);\n"
+"                        List books = em.createQuery(\"select book from Book "
+"as book\").getResultList();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextEntityManager.index(book);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:162
+#, no-c-format
+msgid ""
+"After executing the above code, you should be able to see a Lucene index "
+"under <literal>/var/lucene/indexes/example.Book</literal>. Go ahead an "
+"inspect this index. It will help you to understand how Hibernate Search "
+"works."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:169
+#, no-c-format
+msgid "Searching"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:171
+#, no-c-format
+msgid ""
+"Now it is time to execute a first search. The following code will prepare a "
+"query against the fields <literal>summary</literal> and <literal>body</"
+"literal>, execute it and return a list of <classname>Book</classname>s:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:178
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        \n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        \n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextSession."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();\n"
+"                        \n"
+"                        tx.commit();\n"
+"                        session.close();"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:182
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        \n"
+"                        FullTextEntityManager fullTextEntityManager = \n"
+"                        org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextEntityManager."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:186
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:188
+#, no-c-format
+msgid ""
+"Assume that one of your indexed book entities contains the text \"Java rocks"
+"\" and you want to get hits for all of the following queries: \"rock\", "
+"\"rocks\", \"rocked\" and \"rocking\". In Lucene this can be achieved by "
+"choosing an analyzer class which applies word stemming during the indexing "
+"process. Hibernate Search offers several ways to configure the analyzer to "
+"use (see <xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:197
+#, no-c-format
+msgid ""
+"Setting the <literal>hibernate.search.analyzer</literal> property in the "
+"configuration file. The specified class will then be the default analyzer."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:203
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the entity level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:208
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the field level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:213
+#, no-c-format
+msgid ""
+"The following example uses the entity level annotation to apply a English "
+"language analyzer which would help you to achieve your goal. The class "
+"<classname>EnglishAnalyzer</classname> is a custom class using the Snowball "
+"English Stemmer from the <ulink url=\"http://lucene.apache.org/java/docs/"
+"lucene-sandbox/\">Lucene Sandbox</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:220
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        @Indexed\n"
+"                        <emphasis role=\"bold\">@Analyzer(impl = example."
+"EnglishAnalyzer.class)</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        @DocumentId\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String body;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ... \n"
+"                        }\n"
+"                        \n"
+"                        public class EnglishAnalyzer extends Analyzer {\n"
+"                        /**\n"
+"                        * {@inheritDoc}\n"
+"                        */\n"
+"                        @Override\n"
+"                        public TokenStream tokenStream(String fieldName, "
+"Reader reader) {\n"
+"                        TokenStream result = new StandardTokenizer(reader);\n"
+"                        result = new StandardFilter(result);\n"
+"                        result = new LowerCaseFilter(result);\n"
+"                        result = new SnowballFilter(result, name);\n"
+"                        return result;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:224
+#, no-c-format
+msgid "What's next"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:226
+#, no-c-format
+msgid ""
+"The above paragraphs hopefully helped you getting started with Hibernate "
+"Search. You should by now have a file system based index and be able to "
+"search and retrieve a list of managed objects via Hibernate Search. The next "
+"step is to get more familiar with the overall architecture (<xref linkend="
+"\"Hibernate_Search-Architecture\"/>) and explore the basic features in more "
+"detail."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:233
+#, no-c-format
+msgid ""
+"Two topics which where only briefly touched in this tutorial were analyzer "
+"configuration (<xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>) and "
+"field bridges (<xref linkend=\"Hibernate_Search-Mapping-Bridge\"/>), both "
+"important features required for more fine-grained indexing."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:238
+#, no-c-format
+msgid ""
+"More advanced topics cover clustering (<xref linkend=\"Hibernate_Search-"
+"Configuration-JMS_Backend\"/>) and large indexes handling (<xref linkend="
+"\"Hibernate_Search-Configuration-Index_Sharding\"/>)."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Hibernate_Search_Reference_Guide_CP04_FP01.po
===================================================================

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Introduction.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Introduction.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,44 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:8
+#, no-c-format
+msgid ""
+"Full text search engines like <productname>Apache Lucene</productname> are "
+"powerful technologies that add efficient free text search capabilities to "
+"applications. However, they suffer several mismatches when dealing with "
+"object domain models. Amongst other things, indexes have to be kept up to "
+"date and mismatches between index structure and domain model as well as "
+"query mismatches need to be avoided."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Hibernate Search indexes your domain model with the help of a few "
+"annotations, takes care of database/index synchronization and brings back "
+"regular managed objects from free text queries. To achieve this Hibernate "
+"Search combines the power of <ulink url=\"http://www.hibernate.org"
+"\">Hibernate</ulink> and <ulink url=\"http://lucene.apache.org\">Apache "
+"Lucene</ulink>."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Lucene_Native.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Lucene_Native.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Lucene_Native.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,161 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Lucene_Native.xml:6
+#, no-c-format
+msgid "Accessing Lucene natively"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:9
+#, no-c-format
+msgid "SearchFactory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:11
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> object keeps track of the "
+"underlying Lucene resources for Hibernate Search, it's also a convenient way "
+"to access Lucene natively. The <classname>SearchFactory</classname> can be "
+"accessed from a <classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:20
+#, no-c-format
+msgid "Accessing a Lucene Directory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:22
+#, no-c-format
+msgid ""
+"You can always access the Lucene directories through plain Lucene, the "
+"Directory structure is in no way different with or without Hibernate Search. "
+"However there are some more convenient ways to access a given Directory. The "
+"<classname>SearchFactory</classname> keeps track of the "
+"<classname>DirectoryProvider</classname>s per indexed class. One directory "
+"provider can be shared amongst several indexed classes if the classes share "
+"the same underlying index directory. While usually not the case, a given "
+"entity can have several <classname>DirectoryProvider</classname>s is the "
+"index is sharded (see <xref linkend=\"Hibernate_Search-Configuration-"
+"Index_Sharding\"/>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:32
+#, no-c-format
+msgid ""
+"DirectoryProvider[] provider = searchFactory.getDirectoryProviders(Order."
+"class);\n"
+"                        org.apache.lucene.store.Directory directory = "
+"provider[0].getDirectory();"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:34
+#, no-c-format
+msgid ""
+"In this example, directory points to the lucene index storing "
+"<classname>Order</classname>s information. Note that the obtained Lucene "
+"directory must not be closed (this is Hibernate Search responsibility)."
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:41
+#, no-c-format
+msgid "Using an IndexReader"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:43
+#, no-c-format
+msgid ""
+"Queries in Lucene are executed on an <literal>IndexReader</literal>. "
+"Hibernate Search caches such index readers to maximize performances. Your "
+"code can access such cached / shared resources. You will just have to follow "
+"some \"good citizen\" rules."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:48
+#, no-c-format
+msgid ""
+"DirectoryProvider orderProvider = searchFactory.getDirectoryProviders(Order."
+"class)[0];\n"
+"                        DirectoryProvider clientProvider = searchFactory."
+"getDirectoryProviders(Client.class)[0];\n"
+"                        \n"
+"                        ReaderProvider readerProvider = searchFactory."
+"getReaderProvider();\n"
+"                        IndexReader reader = readerProvider.openReader"
+"(orderProvider, clientProvider);\n"
+"                        \n"
+"                        try {\n"
+"                        //do read-only operations on the reader\n"
+"                        }\n"
+"                        finally {\n"
+"                        readerProvider.closeReader(reader);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:50
+#, no-c-format
+msgid ""
+"The ReaderProvider (described in <xref linkend=\"Hibernate_Search-"
+"Architecture-Reader_Strategy\"/>), will open an IndexReader on top of the "
+"index(es) referenced by the directory providers. This IndexReader being "
+"shared amongst several clients, you must adhere to the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:57
+#, no-c-format
+msgid ""
+"Never call indexReader.close(), but always call readerProvider.closeReader"
+"(reader); (a finally block is the best area)."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:63
+#, no-c-format
+msgid ""
+"This indexReader must not be used for modification operations (especially "
+"delete), if you want to use an read/write index reader, open one from the "
+"Lucene Directory object."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:69
+#, no-c-format
+msgid ""
+"Aside from those rules, you can use the IndexReader freely, especially to do "
+"native queries. Using the shared <literal>IndexReader</literal>s will make "
+"most queries more efficient."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1284 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Mapping.xml:6
+#, no-c-format
+msgid "Mapping Entities to the Index Structure"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:8
+#, no-c-format
+msgid ""
+"All the metadata information needed to index entities is described through "
+"some Java annotations. There is no need for xml mapping files nor a list of "
+"indexed entities. The list is discovered at startup by scanning the "
+"Hibernate mapped entities."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:14
+#, no-c-format
+msgid "Mapping an entity"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:17
+#, no-c-format
+msgid "Basic mapping"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:19
+#, no-c-format
+msgid ""
+"First, we must declare a persistent class as indexable. This is done by "
+"annotating the class with <literal>@Indexed</literal> (all entities not "
+"annotated with <literal>@Indexed</literal> will be ignored by the indexing "
+"process):"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:24
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                <emphasis role=\"bold\">@Indexed(index="
+"\"indexes/essays\")</emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:26
+#, no-c-format
+msgid ""
+"The <literal>index</literal> attribute tells Hibernate what the Lucene "
+"directory name is (usually a directory on your file system). If you wish to "
+"define a base directory for all Lucene indexes, you can use the "
+"<literal>hibernate.search.default.indexBase</literal> property in your "
+"configuration file. Each entity instance will be represented by a Lucene "
+"<classname>Document</classname> inside the given index (aka Directory)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:34
+#, no-c-format
+msgid ""
+"For each property (or attribute) of your entity, you have the ability to "
+"describe how it will be indexed. The default (i.e. no annotation) means that "
+"the property is completely ignored by the indexing process. <literal>@Field</"
+"literal> does declare a property as indexed. When indexing an element to a "
+"Lucene document you can specify how it is indexed:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:43
+#, no-c-format
+msgid ""
+"<literal>name</literal> : describe under which name, the property should be "
+"stored in the Lucene Document. The default value is the property name "
+"(following the JavaBeans convention)"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:49
+#, no-c-format
+msgid ""
+"<literal>store</literal> : describe whether or not the property is stored in "
+"the Lucene index. You can store the value <literal>Store.YES</literal> "
+"(consuming more space in the index but allowing projection, see <xref "
+"linkend=\"Hibernate_Search-Query-Projections\"/> for more information), "
+"store it in a compressed way <literal>Store.COMPRESS</literal> (this does "
+"consume more CPU), or avoid any storage <literal>Store.NO</literal> (this is "
+"the default value). When a property is stored, you can retrieve it from the "
+"Lucene Document (note that this is not related to whether the element is "
+"indexed or not)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:62
+#, no-c-format
+msgid ""
+"index: describe how the element is indexed (i.e. the process used to index "
+"the property and the type of information store). The different values are "
+"<literal>Index.NO</literal> (no indexing, i.e. cannot be found by a query), "
+"<literal>Index.TOKENIZED</literal> (use an analyzer to process the "
+"property), <literal>Index.UN_TOKENISED</literal> (no analyzer pre-"
+"processing), <literal>Index.NO_NORM</literal> (do not store the "
+"normalization data). The default value is <literal>TOKENIZED</literal>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:73
+#, no-c-format
+msgid "These attributes are part of the <literal>@Field</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:76
+#, no-c-format
+msgid ""
+"Whether or not you want to store the data depends on how you wish to use the "
+"index query result. For a regular Hibernate Search usage, storing is not "
+"necessary. However you might want to store some fields to subsequently "
+"project them (see <xref linkend=\"Hibernate_Search-Query-Projections\"/> for "
+"more information)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:82
+#, no-c-format
+msgid ""
+"Whether or not you want to tokenize a property depends on whether you wish "
+"to search the element as is, or by the words it contains. It make sense to "
+"tokenize a text field, but it does not to do it for a date field (or an id "
+"field). Note that fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:88
+#, no-c-format
+msgid ""
+"Finally, the id property of an entity is a special property used by "
+"Hibernate Search to ensure index unicity of a given entity. By design, an id "
+"has to be stored and must not be tokenized. To mark a property as index id, "
+"use the <literal>@DocumentId</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:94
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                <emphasis role=\"bold\">@DocumentId</"
+"emphasis>\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@Field(name="
+"\"Abstract\", index=Index.TOKENIZED, store=Store.YES)</emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED)</emphasis>\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:96
+#, no-c-format
+msgid ""
+"These annotations define an index with three fields: <literal>id</literal> , "
+"<literal>Abstract</literal> and <literal>text</literal> . Note that by "
+"default the field name is decapitalized, following the JavaBean "
+"specification."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:102
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify <literal>@DocumentId</literal> on the "
+"identifier property of your entity class."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:109
+#, no-c-format
+msgid "Mapping properties multiple times"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:111
+#, no-c-format
+msgid ""
+"It is sometimes needed to map a property multiple times per index, with "
+"slightly different indexing strategies. Especially, sorting a query by field "
+"requires the field to be <literal>UN_TOKENIZED</literal>. If one want to "
+"search by words in this property and still sort it, one need to index it "
+"twice, once tokenized, once untokenized. @Fields allows to achieve this goal."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:118
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index = \"Book\" )\n"
+"                                public class Book {\n"
+"                                @Fields( {\n"
+"                                @Field(index = Index.TOKENIZED),\n"
+"                                @Field(name = \"summary_forSort\", index = "
+"Index.UN_TOKENIZED, store = Store.YES)\n"
+"                                } )\n"
+"                                public String getSummary() {\n"
+"                                return summary;\n"
+"                                }\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:120
+#, no-c-format
+msgid ""
+"The field summary is indexed twice, once as <literal>summary</literal> in a "
+"tokenized way, and once as <literal>summary_forSort</literal> in an "
+"untokenized way. @Field supports 2 attributes useful when @Fields is used:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:127
+#, no-c-format
+msgid ""
+"analyzer: defines a @Analyzer annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:132
+#, no-c-format
+msgid ""
+"bridge: defines a @FieldBridge annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:137
+#, no-c-format
+msgid "See below for more information about analyzers and field bridges."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:142
+#, no-c-format
+msgid "Embedded and Associated Objects"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:144
+#, no-c-format
+msgid ""
+"Associated objects as well as embedded objects can be indexed as part of the "
+"root entity index. It is necessary if you expect to search a given entity "
+"based on properties of the associated object(s). In the following example, "
+"the use case is to return the places whose city is Atlanta (In the Lucene "
+"query parser language, it would translate into <code>address.city:Atlanta</"
+"code>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:151
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:153
+#, no-c-format
+msgid ""
+"In this example, the place fields will be indexed in the <literal>Place</"
+"literal> index. The <literal>Place</literal> index documents will also "
+"contain the fields <literal>address.id</literal>, <literal>address.street</"
+"literal>, and <literal>address.city</literal> which you will be able to "
+"query. This is enabled by the <literal>@IndexedEmbedded</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:162
+#, no-c-format
+msgid ""
+"Be careful. Because the data is denormalized in the Lucene index when using "
+"the <classname>@IndexedEmbedded</classname> technique, Hibernate Search "
+"needs to be aware of any change in the Place object and any change in the "
+"Address object to keep the index up to date. To make sure the Place Lucene "
+"document is updated when it's Address changes, you need to mark the other "
+"side of the bidirectional relationship with <classname>@ContainedIn</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:172
+#, no-c-format
+msgid ""
+"<literal>@ContainedIn</literal> is only useful on associations pointing to "
+"entities as opposed to embedded (collection of) objects."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:176
+#, no-c-format
+msgid "Let's make our example a bit more complex:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:178
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded"
+"(depth = 1, prefix = \"ownedBy_\")</emphasis>\n"
+"                                private Owner ownedBy;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner {\n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:180
+#, no-c-format
+msgid ""
+"Any <literal>@*ToOne</literal> and <literal>@Embedded</literal> attribute "
+"can be annotated with <literal>@IndexedEmbedded</literal>. The attributes of "
+"the associated class will then be added to the main entity index. In the "
+"previous example, the index will contain the following fields"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:188
+#, no-c-format
+msgid "<para>id</para>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:192
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:196
+#, no-c-format
+msgid "address.street"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:200
+#, no-c-format
+msgid "address.city"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:204
+#, no-c-format
+msgid "addess.ownedBy_name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:208
+#, no-c-format
+msgid ""
+"The default prefix is <literal>propertyName.</literal>, following the "
+"traditional object navigation convention. You can override it using the "
+"<literal>prefix</literal> attribute as it is shown on the <literal>ownedBy</"
+"literal> property."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:213
+#, no-c-format
+msgid ""
+"<literal>depth</literal> is necessary when the object graph contains a "
+"cyclic dependency of classes (not instances). For example, if "
+"<classname>Owner</classname> points to <classname>Place</classname>. "
+"Hibernate Search will stop including Indexed embedded attributes after "
+"reaching the expected depth (or the object graph boundaries are reached). A "
+"class having a self reference is an example of cyclic dependency. In our "
+"example, because <literal>depth</literal> is set to 1, any "
+"<literal>@IndexedEmbedded</literal> attribute in Owner (if any) will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:223
+#, no-c-format
+msgid ""
+"Such a feature (<literal>@IndexedEmbedded</literal>) is very useful to "
+"express queries referring to associated objects, such as:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:229
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where address city is Atlanta. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:232
+#, no-c-format
+msgid "+name:jboss +address.city:atlanta"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:236
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where owner's name contain Joe. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:239
+#, no-c-format
+msgid "+name:jboss +address.orderBy_name:joe"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:243
+#, no-c-format
+msgid ""
+"In a way it mimics the relational join operation in a more efficient way (at "
+"the cost of data duplication). Remember that, out of the box, Lucene indexes "
+"have no notion of association, the join operation is simply non-existent. It "
+"might help to keep the relational model normalized while benefiting from the "
+"full text index speed and feature richness."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:251
+#, no-c-format
+msgid ""
+"An associated object can itself be (but don't have to) <literal>@Indexed</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:255
+#, no-c-format
+msgid ""
+"When @IndexedEmbedded points to an entity, the association has to be "
+"directional and the other side has to be annotated <literal>@ContainedIn</"
+"literal> (as see in the previous example). If not, Hibernate Search has no "
+"way to update the root index when the associated entity is updated (in our "
+"example, a <literal>Place</literal> index document has to be updated when "
+"the associated <classname>Address</classname> instance is updated."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:263
+#, no-c-format
+msgid ""
+"Sometimes, the object type annotated by <classname>@IndexedEmbedded</"
+"classname> is not the object type targeted by Hibernate and Hibernate Search "
+"especially when interface are used in lieu of their implementation. You can "
+"override the object type targeted by Hibernate Search using the "
+"<command>targetElement</command> parameter."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:270
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index= Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @IndexedEmbedded(depth = 1, prefix = "
+"\"ownedBy_\", <emphasis role=\"bold\">targetElement = Owner.class</"
+"emphasis>)\n"
+"                                @Target(Owner.class)\n"
+"                                private Person ownedBy;\n"
+"                                \n"
+"                                \n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner implements Person { ... }"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:274
+#, no-c-format
+msgid "Boost factor"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:276
+#, no-c-format
+msgid ""
+"Lucene has the notion of <emphasis>boost factor</emphasis> . It's a way to "
+"give more weight to a field or to an indexed element over an other during "
+"the indexation process. You can use <literal>@Boost</literal> at the field "
+"or the class level."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:281
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                <emphasis role=\"bold\">@Boost(2)</"
+"emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                @DocumentId\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                @Field(name=\"Abstract\", index=Index."
+"TOKENIZED, store=Store.YES)\n"
+"                                <emphasis role=\"bold\">@Boost(2.5f)</"
+"emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:283
+#, no-c-format
+msgid ""
+"In our example, Essay's probability to reach the top of the search list will "
+"be multiplied by 2 and the summary field will be 2.5 more important than the "
+"test field. Note that this explanation is actually wrong, but it is simple "
+"and close enough to the reality. Please check the Lucene documentation or "
+"the excellent <citetitle>Lucene In Action </citetitle> from Otis Gospodnetic "
+"and Erik Hatcher."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:292
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:294
+#, no-c-format
+msgid ""
+"The default analyzer class used to index the elements is configurable "
+"through the <literal>hibernate.search.analyzer</literal> property. If none "
+"is defined, <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</"
+"classname> is used as the default."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:300
+#, no-c-format
+msgid ""
+"You can also define the analyzer class per entity, per property and even per "
+"@Field (useful when multiple fields are indexed from a single property)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:304
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                @Analyzer(impl = EntityAnalyzer.class)\n"
+"                                public class MyEntity {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Integer id;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                @Analyzer(impl = PropertyAnalyzer.class)\n"
+"                                private String summary;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED, analyzer = "
+"@Analyzer(impl = FieldAnalyzer.class)\n"
+"                                private String body;\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:306
+#, no-c-format
+msgid ""
+"In this example, <classname>EntityAnalyzer</classname> is used index all "
+"tokenized properties (e.g. <literal>name</literal>), except for "
+"<literal>summary</literal> and <literal>body</literal> which are indexed "
+"with <classname>PropertyAnalyzer</classname> and <classname>FieldAnalyzer</"
+"classname> respectively."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:313
+#, no-c-format
+msgid ""
+"Mixing different analyzers in the same entity is most of the time a bad "
+"practice. It makes query building more complex and results less predictable "
+"(for the novice), especially if you are using a QueryParser (which uses the "
+"same analyzer for the whole query). As a thumb rule, the same analyzer "
+"should be used for both the indexing and the query for a given field."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:326
+#, no-c-format
+msgid "Property/Field Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:328
+#, no-c-format
+msgid ""
+"In Lucene all index fields have to be represented as Strings. For this "
+"reason all entity properties annotated with <literal>@Field</literal> have "
+"to be indexed in a String form. For most of your properties, Hibernate "
+"Search does the translation job for you thanks to a built-in set of bridges. "
+"In some cases, though you need a more fine grain control over the "
+"translation process."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:336
+#, no-c-format
+msgid "Built-in bridges"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:338
+#, no-c-format
+msgid ""
+"<literal>Hibernate Search</literal> comes bundled with a set of built-in "
+"bridges between a Java property type and its full text representation."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:344
+#, no-c-format
+msgid "null"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:347
+#, no-c-format
+msgid ""
+"null elements are not indexed. Lucene does not support null elements and "
+"this does not make much sense either."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:353
+#, no-c-format
+msgid "java.lang.String"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:356
+#, no-c-format
+msgid "String are indexed as is"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:361
+#, no-c-format
+msgid ""
+"short, Short, integer, Integer, long, Long, float, Float, double, Double, "
+"BigInteger, BigDecimal"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:365
+#, no-c-format
+msgid ""
+"Numbers are converted in their String representation. Note that numbers "
+"cannot be compared by Lucene (i.e. used in ranged queries) out of the box: "
+"they have to be padded"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:368
+#, no-c-format
+msgid ""
+"Using a Range query is debatable and has drawbacks, an alternative approach "
+"is to use a Filter query which will filter the result query to the "
+"appropriate range."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:372
+#, no-c-format
+msgid "Hibernate Search will support a padding mechanism"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:378
+#, no-c-format
+msgid "java.util.Date"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:381
+#, no-c-format
+msgid ""
+"Dates are stored as yyyyMMddHHmmssSSS in GMT time (200611072203012 for Nov "
+"7th of 2006 4:03PM and 12ms EST). You shouldn't really bother with the "
+"internal format. What is important is that when using a DateRange Query, you "
+"should know that the dates have to be expressed in GMT time."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:387
+#, no-c-format
+msgid ""
+"Usually, storing the date up to the millisecond is not necessary. "
+"<literal>@DateBridge</literal> defines the appropriate resolution you are "
+"willing to store in the index ( <literal> <literal>@DateBridge"
+"(resolution=Resolution.DAY)</literal> </literal> ). The date pattern will "
+"then be truncated accordingly."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:394
+#, no-c-format
+msgid ""
+"@Entity \n"
+"                                                        @Indexed\n"
+"                                                        public class Meeting "
+"{\n"
+"                                                        @Field(index=Index."
+"UN_TOKENIZED)\n"
+"                                                        <emphasis role=\"bold"
+"\">@DateBridge(resolution=Resolution.MINUTE)</emphasis>\n"
+"                                                        private Date date;\n"
+"                                                        ..."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:397
+#, no-c-format
+msgid ""
+"A Date whose resolution is lower than <literal>MILLISECOND</literal> cannot "
+"be a <literal>@DocumentId</literal>"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:408
+#, no-c-format
+msgid "Custom Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:410
+#, no-c-format
+msgid ""
+"It can happen that the built-in bridges of Hibernate Search do not cover "
+"some of your property types, or that the String representation used is not "
+"what you expect. The following paragraphs several solutions for this problem."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:416
+#, no-c-format
+msgid "StringBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:418
+#, no-c-format
+msgid ""
+"The simplest custom solution is to give <productname>Hibernate Search </"
+"productname> an implementation of your expected <emphasis>object to String</"
+"emphasis> bridge. To do so you need to implements the <literal>org.hibernate."
+"search.bridge.StringBridge</literal> interface"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:425
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Padding Integer bridge.\n"
+"                                        * All numbers will be padded with 0 "
+"to match 5 digits\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class PaddedIntegerBridge "
+"implements <emphasis role=\"bold\">StringBridge</emphasis> {\n"
+"                                        \n"
+"                                        private int PADDING = 5;\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"String objectToString(Object object)</emphasis> {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"PADDING) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; PADDING ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:427
+#, no-c-format
+msgid ""
+"Then any property or field can use this bridge thanks to the "
+"<literal>@FieldBridge</literal> annotation"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:430
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">@FieldBridge(impl = PaddedIntegerBridge.class)</"
+"emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:432
+#, no-c-format
+msgid ""
+"Parameters can be passed to the Bridge implementation making it more "
+"flexible. The Bridge implementation implements a "
+"<classname>ParameterizedBridge</classname> interface, and the parameters are "
+"passed through the <literal>@FieldBridge</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:438
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements StringBridge, <emphasis\n"
+"                                                                                role="
+"\"bold\">ParameterizedBridge</emphasis> {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"setParameterValues(Map parameters)</emphasis> {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        <emphasis role=\"bold\">params = "
+"@Parameter(name=\"padding\", value=\"10\")</emphasis>\n"
+"                                        )\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:440
+#, no-c-format
+msgid ""
+"The <classname>ParameterizedBridge</classname> interface can be implemented "
+"by <classname>StringBridge</classname> , <classname>TwoWayStringBridge</"
+"classname> , <classname>FieldBridge</classname> implementations (see bellow)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:446
+#, no-c-format
+msgid ""
+"If you expect to use your bridge implementation on for an id property (i.e. "
+"annotated with <literal>@DocumentId</literal> ), you need to use a slightly "
+"extended version of <literal>StringBridge</literal> named "
+"<classname>TwoWayStringBridge</classname> . <literal>Hibernate Search </"
+"literal> needs to read the string representation of the identifier and "
+"generate the object out of it. There is not difference in the way the "
+"<literal>@FieldBridge</literal> annotation is used."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:455
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements TwoWayStringBridge, "
+"ParameterizedBridge {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"Object stringToObject(String stringValue)</emphasis> {\n"
+"                                        return new Integer(stringValue);\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //id property\n"
+"                                        @DocumentId\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        params = @Parameter(name=\"padding"
+"\", value=\"10\") \n"
+"                                        private Integer id;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:457
+#, no-c-format
+msgid ""
+"It is critically important for the two-way process to be idempotent (i.e. "
+"object = stringToObject( objectToString( object ) ) )."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:465
+#, no-c-format
+msgid "FieldBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:467
+#, no-c-format
+msgid ""
+"Some usecases requires more than a simple object to string translation when "
+"mapping a property to a Lucene index. To give you most of the flexibility "
+"you can also implement a bridge as a <classname>FieldBridge</classname> . "
+"This interface give you a property value and let you map it the way you want "
+"in your Lucene <classname>Document</classname> .This interface is very "
+"similar in its concept to the <productname>Hibernate</productname> "
+"<classname>UserType</classname> ."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:476
+#, no-c-format
+msgid ""
+"You can for example store a given property in two different document fields"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:479
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Store the date in 3 different "
+"field year, month, day\n"
+"                                        * to ease Range Query per year, "
+"month or day\n"
+"                                        * (e.g. get all the elements of "
+"December for the last 5 years)\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class DateSplitBridge "
+"implements FieldBridge {\n"
+"                                        private final static TimeZone GMT = "
+"TimeZone.getTimeZone(\"GMT\");\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"set(String name, Object value, Document document, Field.Store\n"
+"                                                store, Field.Index index, "
+"Float boost) {\n"
+"                                        </emphasis>\n"
+"                                        Date date = (Date) value;\n"
+"                                        Calendar cal = GregorianCalendar."
+"getInstance( GMT );\n"
+"                                        cal.setTime( date );\n"
+"                                        int year = cal.get( Calendar."
+"YEAR );\n"
+"                                        int month = cal.get( Calendar."
+"MONTH ) + 1;\n"
+"                                        int day = cal.get( Calendar."
+"DAY_OF_MONTH );\n"
+"                                        //set year\n"
+"                                        Field field = new Field( name + \"."
+"year\", String.valueOf(year), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set month and pad it if needed\n"
+"                                        field = new Field( name + \".month"
+"\", month &lt; 10 ? \"0\" : \"\" + String.valueOf(month), store, index);\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set day and pad it if needed\n"
+"                                        field = new Field( name + \".day\", "
+"day &lt; 10 ? \"0\" : \"\" + String.valueOf(day), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        <emphasis role=\"bold\">@FieldBridge"
+"(impl = DateSplitBridge.class)</emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:484
+#, no-c-format
+msgid "@ClassBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:486
+#, no-c-format
+msgid ""
+"It is sometimes useful to combine more than one property of a given entity "
+"and index this combination in a specific way into the Lucene index. The "
+"<classname>@ClassBridge</classname> and <classname>@ClassBridges</classname> "
+"annotations can be defined at the class level (as opposed to the property "
+"level). In this case the custom field bridge implementation receives the "
+"entity instance as the value parameter instead of a particular property."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:494
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                        @Indexed\n"
+"                                        <emphasis role=\"bold"
+"\">@ClassBridge</emphasis>(name=\"branchnetwork\",\n"
+"                                        index=Index.TOKENIZED,\n"
+"                                        store=Store.YES,\n"
+"                                        impl = <emphasis role=\"bold"
+"\">CatFieldsClassBridge.class</emphasis>,\n"
+"                                        params = @Parameter( name=\"sepChar"
+"\", value=\" \" ) )\n"
+"                                        public class Department {\n"
+"                                        private int id;\n"
+"                                        private String network;\n"
+"                                        private String branchHead;\n"
+"                                        private String branch;\n"
+"                                        private Integer maxEmployees;\n"
+"                                        ...\n"
+"                                        }\n"
+"                                        \n"
+"                                        public class CatFieldsClassBridge "
+"implements FieldBridge, ParameterizedBridge {\n"
+"                                        \n"
+"                                        private String sepChar;\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        this.sepChar = (String) parameters."
+"get( \"sepChar\" );\n"
+"                                        }\n"
+"                                        \n"
+"                                        public void set(String name, \n"
+"                                        Object value, //the department "
+"instance (entity) in this case\n"
+"                                        Document document, //the Lucene "
+"document \n"
+"                                        Field.Store store, Field.Index "
+"index, Float boost) {\n"
+"                                        // In this particular class the name "
+"of the new field was passed\n"
+"                                        // from the name field of the "
+"ClassBridge Annotation. This is not\n"
+"                                        // a requirement. It just works that "
+"way in this instance. The\n"
+"                                        // actual name could be supplied by "
+"hard coding it below.\n"
+"                                        Department dep = (Department) "
+"value;\n"
+"                                        String fieldValue1 = dep.getBranch"
+"();\n"
+"                                        if ( fieldValue1 == null ) {\n"
+"                                        fieldValue1 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue2 = dep.getNetwork"
+"();\n"
+"                                        if ( fieldValue2 == null ) {\n"
+"                                        fieldValue2 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue = fieldValue1 + "
+"sepChar + fieldValue2;\n"
+"                                        Field field = new Field( name, "
+"fieldValue, store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:496
+#, no-c-format
+msgid ""
+"In this example, the particular <classname>CatFieldsClassBridge</classname> "
+"is applied to the <literal>department</literal> instance, the field bridge "
+"then concatenate both branch and network and index the concatenation."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Optimize.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Optimize.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Optimize.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,210 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Optimize.xml:6
+#, no-c-format
+msgid "Index Optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:8
+#, no-c-format
+msgid ""
+"From time to time, the Lucene index needs to be optimized. The process is "
+"essentially a defragmentation: until the optimization occurs, deleted "
+"documents are just marked as such, no physical deletion is applied, the "
+"optimization can also adjust the number of files in the Lucene Directory."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:16
+#, no-c-format
+msgid ""
+"The optimization speeds up searches but in no way speeds up indexation "
+"(update). During an optimization, searches can be performed (but will most "
+"likely be slowed down), and all index updates will be stopped. Prefer "
+"optimizing:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:25
+#, no-c-format
+msgid "on an idle system or when the searches are less frequent"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:29
+#, no-c-format
+msgid ""
+"after a lot of index modifications (doing so before will not speed up the "
+"indexation process)"
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:35
+#, no-c-format
+msgid "Automatic optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:37
+#, no-c-format
+msgid "Hibernate Search can optimize automatically an index after:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:41
+#, no-c-format
+msgid "a certain amount of operations have been applied (insertion, deletion)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:46
+#, no-c-format
+msgid "or a certain amount of transactions have been applied"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:50
+#, no-c-format
+msgid "The configuration can be global or defined at the index level:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:53
+#, no-c-format
+msgid ""
+"hibernate.search.default.optimizer.operation_limit.max = 1000\n"
+"                        hibernate.search.default.optimizer.transaction_limit."
+"max = 100\n"
+"                        \n"
+"                        hibernate.search.Animal.optimizer.transaction_limit."
+"max = 50"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:55
+#, no-c-format
+msgid ""
+"An optimization will be triggered to the <literal>Animal</literal> index as "
+"soon as either:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:60
+#, no-c-format
+msgid "the number of addition and deletion reaches 1000"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:64
+#, no-c-format
+msgid ""
+"the number of transactions reaches 50 (<command>hibernate.search.Animal."
+"optimizer.transaction_limit.max</command> having priority over "
+"<command>hibernate.search.default.optimizer.transaction_limit.max</command>)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:71
+#, no-c-format
+msgid ""
+"If none of these parameters are defined, not optimization is processed "
+"automatically."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:76
+#, no-c-format
+msgid "Manual optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:78
+#, no-c-format
+msgid ""
+"You can programmatically optimize (defragment) a Lucene index from Hibernate "
+"Search through the <classname>SearchFactory</classname>"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:81
+#, no-c-format
+msgid ""
+"searchFactory.optimize(Order.class);\n"
+"                        \n"
+"                        searchFactory.optimize();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:83
+#, no-c-format
+msgid ""
+"The first example re-index the Lucene index holding <classname>Order</"
+"classname>s, the second, optimize all indexes."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:86
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> can be accessed from a "
+"<classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:89
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:91
+#, no-c-format
+msgid ""
+"Note that <literal>searchFactory.optimize()</literal> has no effect on a JMS "
+"backend. You must apply the optimize operation on the Master node."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:97
+#, no-c-format
+msgid "Adjusting optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:99
+#, no-c-format
+msgid ""
+"Apache Lucene has a few parameters to influence how optimization is "
+"performed. Hibernate Search expose those parameters."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:102
+#, no-c-format
+msgid ""
+"Further index optimization parameters include <literal>hibernate.search."
+"[default|&lt;indexname&gt;].merge_factor</literal>, <literal>hibernate."
+"search.[default|&lt;indexname&gt;].max_merge_docs</literal> and "
+"<literal>hibernate.search.[default|&lt;indexname&gt;].max_buffered_docs</"
+"literal> - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Preface.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Preface.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Preface.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Query.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Query.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Query.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1058 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Query.xml:6
+#, no-c-format
+msgid "Query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:8
+#, no-c-format
+msgid ""
+"The second most important capability of Hibernate Search is the ability to "
+"execute a Lucene query and retrieve entities managed by an Hibernate "
+"session, providing the power of Lucene without living the Hibernate "
+"paradigm, and giving another dimension to the Hibernate classic search "
+"mechanisms (HQL, Criteria query, native SQL query)."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:14
+#, no-c-format
+msgid ""
+"To access the <productname>Hibernate Search</productname> querying "
+"facilities, you have to use an Hibernate <classname>FullTextSession</"
+"classname> . A Search Session wraps a regular <classname>org.hibernate."
+"Session</classname> to provide query and indexing capabilities."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:20
+#, no-c-format
+msgid ""
+"Session session = sessionFactory.openSession();\n"
+"                ...\n"
+"                FullTextSession fullTextSession = Search."
+"createFullTextSession(session);"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:22
+#, no-c-format
+msgid "The search facility is built on native Lucene queries."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:24
+#, no-c-format
+msgid ""
+"org.apache.lucene.queryParser.QueryParser parser = new QueryParser(\"title"
+"\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );\n"
+"                </emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.list(); //return a list of "
+"managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:26
+#, no-c-format
+msgid ""
+"The Hibernate query built on top of the Lucene query is a regular "
+"<literal>org.hibernate.Query</literal> , you are in the same paradigm as the "
+"other Hibernate query facilities (HQL, Native or Criteria). The regular "
+"<literal>list()</literal> , <literal>uniqueResult()</literal> , "
+"<literal>iterate()</literal> and <literal>scroll()</literal> can be used."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:33
+#, no-c-format
+msgid ""
+"For people using Java Persistence (aka EJB 3.0 Persistence) APIs of "
+"Hibernate, the same extensions exist:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:36
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                \n"
+"                FullTextEntityManager fullTextEntityManager = \n"
+"                org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                \n"
+"                ...\n"
+"                org.apache.lucene.queryParser.QueryParser parser = new "
+"QueryParser(\"title\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">javax.persistence.Query "
+"fullTextQuery = fullTextEntityManager.createFullTextQuery( luceneQuery );</"
+"emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.getResultList(); //return a list "
+"of managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:38
+#, no-c-format
+msgid ""
+"The following examples show the Hibernate APIs but the same example can be "
+"easily rewritten with the Java Persistence API by just adjusting the way the "
+"FullTextQuery is retrieved."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:43
+#, no-c-format
+msgid "Building queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:45
+#, no-c-format
+msgid ""
+"Hibernate Search queries are built on top of Lucene queries. It gives you a "
+"total freedom on the kind of Lucene queries you are willing to execute. "
+"However, once built, Hibernate Search abstract the query processing from "
+"your application using org.hibernate.Query as your primary query "
+"manipulation API."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:52
+#, no-c-format
+msgid "Building a Lucene query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:54
+#, no-c-format
+msgid ""
+"This subject is generally speaking out of the scope of this documentation. "
+"Please refer to the Lucene documentation or Lucene In Action."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:60
+#, no-c-format
+msgid "Building a Hibernate Search query"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:63
+#, no-c-format
+msgid "Generality"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:65
+#, no-c-format
+msgid ""
+"Once the Lucene query is built, it needs to be wrapped into an Hibernate "
+"Query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession( session );\n"
+"                                        org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:70
+#, no-c-format
+msgid ""
+"If not specified otherwise, the query will be executed against all indexed "
+"entities, potentially returning all types of indexed classes. It is advised, "
+"from a performance point of view, to restrict the returned types:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:75
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        //or\n"
+"                                        fullTextQuery = fullTextSession."
+"createFullTextQuery( luceneQuery, Item.class, Actor.class );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:77
+#, no-c-format
+msgid ""
+"The first example returns only matching customers, the second returns "
+"matching actors and items."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:82
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:84
+#, no-c-format
+msgid ""
+"It is recommended to restrict the number of returned objects per query. It "
+"is a very common use case as well, the user usually navigate from one page "
+"to an other. The way to define pagination is exactly the way you would "
+"define pagination in a plain HQL or Criteria query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:90
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        fullTextQuery.setFirstResult(15); //"
+"start from the 15th element\n"
+"                                        fullTextQuery.setMaxResults(10); //"
+"return 10 elements"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:93
+#, no-c-format
+msgid ""
+"It is still possible to get the total number of matching elements regardless "
+"of the pagination. See <command>getResultSize()</command> below"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:100
+#, no-c-format
+msgid "Sorting"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:102
+#, no-c-format
+msgid ""
+"Apache Lucene provides a very flexible and powerful way to sort results. "
+"While the default sorting (by relevance) is appropriate most of the time, it "
+"can interesting to sort by one or several properties."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:107
+#, no-c-format
+msgid ""
+"Inject the Lucene Sort object to apply a Lucene sorting strategy to an "
+"Hibernate Search."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:110
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery( query, "
+"Book.class );\n"
+"                                        org.apache.lucene.search.Sort sort = "
+"new Sort(new SortField(\"title\"));\n"
+"                                        <emphasis role=\"bold\">query.setSort"
+"(sort);</emphasis>\n"
+"                                        List results = query.list();"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:112
+#, no-c-format
+msgid ""
+"One can notice the <classname>FullTextQuery</classname> interface which is a "
+"sub interface of <classname>org.hibernate.Query</classname>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:116
+#, no-c-format
+msgid "Fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:120
+#, no-c-format
+msgid "Fetching strategy"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:122
+#, no-c-format
+msgid ""
+"When you restrict the return types to one class, Hibernate Search loads the "
+"objects using a single query. It also respects the static fetching strategy "
+"defined in your domain model."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:126
+#, no-c-format
+msgid ""
+"It is often useful, however, to refine the fetching strategy for a specific "
+"use case."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:129
+#, no-c-format
+msgid ""
+"Criteria criteria = s.createCriteria( Book.class ).setFetchMode( \"authors"
+"\", FetchMode.JOIN );\n"
+"                                        s.createFullTextQuery( luceneQuery )."
+"setCriteriaQuery( criteria );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:131
+#, no-c-format
+msgid ""
+"In this example, the query will return all Books matching the luceneQuery. "
+"The authors collection will be loaded from the same query using an SQL outer "
+"join."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:135
+#, no-c-format
+msgid ""
+"When defining a criteria query, it is not needed to restrict the entity "
+"types returned while creating the Hibernate Search query from the full text "
+"session: the type is guessed from the criteria query itself. Only fetch mode "
+"can be adjusted, refrain from applying any other restriction."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:141
+#, no-c-format
+msgid ""
+"One cannot use <command>setCriteriaQuery</command> if more than one entity "
+"type is expected to be returned."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:146
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:148
+#, no-c-format
+msgid ""
+"For some use cases, returning the domain object (graph) is overkill. Only a "
+"small subset of the properties is necessary. Hibernate Search allows you to "
+"return a subset of properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:152
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( \"id\", \"summary\", \"body\", \"mainAuthor.name\" )</"
+"emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        Integer id = firstResult[0];\n"
+"                                        String summary = firstResult[1];\n"
+"                                        String body = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:154
+#, no-c-format
+msgid ""
+"Hibernate Search extracts the properties from the Lucene index and convert "
+"them back to their object representation, returning a list of "
+"<classname>Object[]</classname>. Projections avoid a potential database "
+"round trip (useful if the query response time is critical), but has some "
+"constraints:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:162
+#, no-c-format
+msgid ""
+"the properties projected must be stored in the index (<literal>@Field"
+"(store=Store.YES)</literal>), which increase the index size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:168
+#, no-c-format
+msgid ""
+"the properties projected must use a <literal>FieldBridge</literal> "
+"implementing <classname>org.hibernate.search.bridge.TwoWayFieldBridge</"
+"classname> or <literal>org.hibernate.search.bridge.TwoWayStringBridge</"
+"literal>, the latter being the simpler version. All Hibernate Search built-"
+"in types are two-way."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:178
+#, no-c-format
+msgid ""
+"Projection is useful for another kind of usecases. Lucene provides some "
+"metadata information to the user about the results. By using some special "
+"placeholders, the projection mechanism can retrieve them:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:183
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( FullTextQuery.SCORE, FullTextQuery.BOOST, FullTextQuery."
+"THIS, \"mainAuthor.name\" )</emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        float score = firstResult[0];\n"
+"                                        float boost = firstResult[1];\n"
+"                                        Book book = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:185
+#, no-c-format
+msgid ""
+"You can mix and match regular fields and special placeholders. Here is the "
+"list of available placeholders:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:190
+#, no-c-format
+msgid ""
+"FullTextQuery.THIS: returns the initialized and managed entity (as a non "
+"projected query would have done)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:195
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT: returns the Lucene Document related to the object "
+"projected"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:200
+#, no-c-format
+msgid ""
+"FullTextQuery.SCORE: returns the document score in the query. The score is "
+"guaranteed to be between 0 and 1 but the highest score is not necessarily "
+"equals to 1. Scores are handy to compare one result against an other for a "
+"given query but are useless when comparing the result of different queries."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:208
+#, no-c-format
+msgid "FullTextQuery.BOOST: the boost value of the Lucene Document"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:213
+#, no-c-format
+msgid "FullTextQuery.ID: the id property value of the projected object"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:218
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT_ID: the Lucene document id. Careful, Lucene document "
+"id can change overtime between two different IndexReader opening (this "
+"feature is experimental)"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:228
+#, no-c-format
+msgid "Retrieving the results"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:230
+#, no-c-format
+msgid ""
+"Once the Hibernate Search query is built, executing it is in no way "
+"different than executing a HQL or Criteria query. The same paradigm and "
+"object semantic apply. All the common operations are available: <command>list"
+"()</command>, <command>uniqueResult()</command>, <command>iterate()</"
+"command>, <command>scroll()</command>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:238
+#, no-c-format
+msgid "Performance considerations"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:240
+#, no-c-format
+msgid ""
+"If you expect a reasonable number of results (for example using pagination) "
+"and expect to work on all of them, <command>list()</command> or "
+"<command>uniqueResult()</command> are recommended. <command>list()</command> "
+"work best if the entity <literal>batch-size</literal> is set up properly. "
+"Note that Hibernate Search has to process all Lucene Hits elements (within "
+"the pagination) when using <command>list()</command> , <command>uniqueResult"
+"()</command> and <command>iterate()</command>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:251
+#, no-c-format
+msgid ""
+"If you wish to minimize Lucene document loading, <command>scroll()</command> "
+"is more appropriate. Don't forget to close the <classname>ScrollableResults</"
+"classname> object when you're done, since it keeps Lucene resources. If you "
+"expect to use <command>scroll</command> but wish to load objects in batch, "
+"you can use <command>query.setFetchSize()</command>: When an object is "
+"accessed, and if not already loaded, Hibernate Search will load the next "
+"<literal>fetchSize</literal> objects in one pass."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:260
+#, no-c-format
+msgid "Pagination is a preferred method over scrolling though."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:264
+#, no-c-format
+msgid "Result size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:266
+#, no-c-format
+msgid "It is sometime useful to know the total number of matching documents:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:271
+#, no-c-format
+msgid "for the Google-like feature 1-10 of about 888,000,000"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:275
+#, no-c-format
+msgid "to implement a fast pagination navigation"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:279
+#, no-c-format
+msgid ""
+"to implement a multi step search engine (adding approximation if the "
+"restricted query return no or not enough results)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:284
+#, no-c-format
+msgid "But it would be costly to retrieve all the matching documents."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:287
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to retrieve the total number of matching "
+"documents regardless of the pagination parameters. Even more interesting, "
+"you can retrieve the number of matching elements without triggering a single "
+"object load."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:292
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the number of matching books without "
+"loading a single one\n"
+"                                \n"
+"                                org.hibernate.search.FullTextQuery query = s."
+"createFullTextQuery( luceneQuery, Book.class );\n"
+"                                query.setMaxResult(10);\n"
+"                                List results = query.list();\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the total number of matching books "
+"regardless of pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:295
+#, no-c-format
+msgid ""
+"Like Google, the number of results is approximate if the index is not fully "
+"up-to-date with the database (asynchronous cluster for example)."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:302
+#, no-c-format
+msgid "ResultTransformer"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:304
+#, no-c-format
+msgid ""
+"Especially when using projection, the data structure returned by a query (an "
+"object array in this case), is not always matching the application needs. It "
+"is possible to apply a <classname>ResultTransformer</classname> operation "
+"post query to match the targeted data structure:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:310
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                query.setProjection( \"title\", \"mainAuthor."
+"name\" );\n"
+"                                \n"
+"                                <emphasis role=\"bold\">query."
+"setResultTransformer( \n"
+"                                        new "
+"StaticAliasToBeanResultTransformer( BookView.class, \"title\", \"author"
+"\" ) \n"
+"                                        );</emphasis>\n"
+"                                List&lt;BookView&gt; results = (List&lt;"
+"BookView&gt;) query.list();\n"
+"                                for(BookView view : results) {\n"
+"                                log.info( \"Book: \" + view.getTitle() + \", "
+"\" + view.getAuthor() );\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:312
+#, no-c-format
+msgid ""
+"Examples of <classname>ResultTransformer</classname> implementations can be "
+"found in the Hibernate Core codebase."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:318
+#, no-c-format
+msgid "Filters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:320
+#, no-c-format
+msgid ""
+"Apache Lucene has a powerful feature that allows to filters results from a "
+"query according to a custom filtering process. This is a very powerful way "
+"to apply some data restrictions after a query, especially since filters can "
+"be cached and reused. Some interesting usecases are:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:328
+#, no-c-format
+msgid "security"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:332
+#, no-c-format
+msgid "temporal data (e.g.. view only last month's data)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:336
+#, no-c-format
+msgid "population filter (e.g. search limited to a given category)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:341
+#, no-c-format
+msgid "and many more"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:345
+#, no-c-format
+msgid ""
+"Hibernate Search pushes the concept further by introducing the notion of "
+"parameterizable named filters which are transparently cached. For people "
+"familiar with the notion of Hibernate Core filters, the API is very similar."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:350
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"bestDriver\");\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")."
+"setParameter( \"login\", \"andre\" );\n"
+"                        fullTextQuery.list(); //returns only best drivers "
+"where andre has credentials"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:352
+#, no-c-format
+msgid ""
+"In this example we enabled 2 filters on top of this query. You can enable "
+"(or disable) as many filters as you want."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:355
+#, no-c-format
+msgid ""
+"Declaring filters is done through the <classname>@FullTextFilterDef</"
+"classname> annotation. This annotation can be on any <literal>@Indexed</"
+"literal> entity regardless of the filter operation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:360
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDefs( {\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"bestDriver\", impl = BestDriversFilter.class, cache=false)</emphasis>, //"
+"actual Filter implementation\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"security\", impl = SecurityFilterFactory.class)</emphasis> //Filter "
+"factory with parameters\n"
+"                        })\n"
+"                        public class Driver { ... }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:362
+#, no-c-format
+msgid "Each named filter points to an actual filter implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:364
+#, no-c-format
+msgid ""
+"public class BestDriversFilter extends <emphasis\n"
+"                                                                                role="
+"\"bold\">org.apache.lucene.search.Filter</emphasis> {\n"
+"                        \n"
+"                        public BitSet bits(IndexReader reader) throws "
+"IOException {\n"
+"                        BitSet bitSet = new BitSet( reader.maxDoc() );\n"
+"                        TermDocs termDocs = reader.termDocs( new Term(\"score"
+"\", \"5\") );\n"
+"                        while ( termDocs.next() ) {\n"
+"                        bitSet.set( termDocs.doc() );\n"
+"                        }\n"
+"                        return bitSet;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:366
+#, no-c-format
+msgid ""
+"<classname>BestDriversFilter</classname> is an example of a simple Lucene "
+"filter that will filter all results to only return drivers whose score is 5. "
+"The filters must have a no-arg constructor when referenced in a "
+"<literal>FulltextFilterDef.impl</literal>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:371
+#, no-c-format
+msgid ""
+"The <literal>cache</literal> flag, defaulted to <literal>true</literal>, "
+"tells Hibernate Search to search the filter in its internal cache and reuses "
+"it if found."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:375
+#, no-c-format
+msgid ""
+"Note that, usually, filter using the <classname>IndexReader</classname> are "
+"wrapped in a Lucene <classname>CachingWrapperFilter</classname> to benefit "
+"from some caching speed improvement. If your Filter creation requires "
+"additional steps or if the filter you are willing to use does not have a no-"
+"arg constructor, you can use the factory pattern:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:382
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDef(name = \"bestDriver\", impl = "
+"BestDriversFilterFactory.class) //Filter factory\n"
+"                        public class Driver { ... }\n"
+"                        \n"
+"                        public class BestDriversFilterFactory {\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Factory</emphasis>\n"
+"                        public Filter getFilter() {\n"
+"                        //some additional steps to cache the filter results "
+"per IndexReader\n"
+"                        Filter bestDriversFilter = new BestDriversFilter();\n"
+"                        return new CachingWrapperFilter(bestDriversFilter);\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:384
+#, no-c-format
+msgid ""
+"Hibernate Search will look for a <literal>@Factory</literal> annotated "
+"method and use it to build the filter instance. The factory must have a no-"
+"arg constructor. For people familiar with JBoss Seam, this is similar to the "
+"component factory pattern, but the annotation is different!"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:390
+#, no-c-format
+msgid ""
+"Named filters comes in handy where the filters have parameters. For example "
+"a security filter needs to know which credentials you are willing to filter "
+"by:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:394
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")"
+"<emphasis role=\"bold\">.setParameter( \"level\", 5 )</emphasis>;"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:396
+#, no-c-format
+msgid ""
+"Each parameter name should have an associated setter on either the filter or "
+"filter factory of the targeted named filter definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:399
+#, no-c-format
+msgid ""
+"public class SecurityFilterFactory {\n"
+"                        private Integer level;\n"
+"                        \n"
+"                        /**\n"
+"                        * injected parameter\n"
+"                        */\n"
+"                        <emphasis role=\"bold\">public void setLevel(Integer "
+"level)</emphasis> {\n"
+"                        this.level = level;\n"
+"                        }\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Key\n"
+"                                public FilterKey getKey()</emphasis> {\n"
+"                        StandardFilterKey key = new StandardFilterKey();\n"
+"                        key.addParameter( level );\n"
+"                        return key;\n"
+"                        }\n"
+"                        \n"
+"                        @Factory\n"
+"                        public Filter getFilter() {\n"
+"                        Query query = new TermQuery( new Term(\"level\", "
+"level.toString() ) );\n"
+"                        return new CachingWrapperFilter( new "
+"QueryWrapperFilter(query) );\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:401
+#, no-c-format
+msgid ""
+"Note the method annotated <classname>@Key</classname> and returning a "
+"<classname>FilterKey</classname> object. The returned object has a special "
+"contract: the key object must implement equals / hashcode so that 2 keys are "
+"equals if and only if the given Filter types are the same and the set of "
+"parameters are the same. In other words, 2 filter keys are equal if and only "
+"if the filters from which the keys are generated can be interchanged. The "
+"key object is used as a key in the cache mechanism."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:410
+#, no-c-format
+msgid "<classname>@Key</classname> methods are needed only if:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:414
+#, no-c-format
+msgid "you enabled the filter caching system (enabled by default)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:419
+#, no-c-format
+msgid "your filter has parameters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:423
+#, no-c-format
+msgid ""
+"In most cases, using the <literal>StandardFilterKey</literal> implementation "
+"will be good enough. It delegates the equals/hashcode implementation to each "
+"of the parameters equals and hashcode methods."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:428
+#, no-c-format
+msgid ""
+"Why should filters be cached? There are two area where filter caching shines:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:433
+#, no-c-format
+msgid ""
+"the system does not update the targeted entity index often (in other words, "
+"the IndexReader is reused a lot)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:438
+#, no-c-format
+msgid ""
+"the Filter BitSet is expensive to compute (compared to the time spent to "
+"execute the query)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:443
+#, no-c-format
+msgid ""
+"Cache is enabled by default and use the notion of SoftReferences to dispose "
+"memory when needed. To adjust the size of the hard reference cache, use "
+"<literal>hibernate.search.filter.cache_strategy.size</literal> (defaults to "
+"128). Don't forget to use a <classname>CachingWrapperFilter</classname> when "
+"the filter is cacheable and the Filter's bits methods makes use of "
+"IndexReader."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:450
+#, no-c-format
+msgid ""
+"For advance use of filter caching, you can implement your own "
+"<classname>FilterCachingStrategy</classname>. The classname is defined by "
+"<literal>hibernate.search.filter.cache_strategy</literal>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:456
+#, no-c-format
+msgid "Optimizing the query process"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:458
+#, no-c-format
+msgid "Query performance depends on several criteria:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:462
+#, no-c-format
+msgid "the Lucene query itself: read the literature on this subject"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:467
+#, no-c-format
+msgid ""
+"the number of object loaded: use pagination (always ;-) ) or index "
+"projection (if needed)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:472
+#, no-c-format
+msgid ""
+"the way Hibernate Search interacts with the Lucene readers: defines the "
+"appropriate <xref linkend=\"Hibernate_Search-Architecture-Reader_Strategy\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:480
+#, no-c-format
+msgid "Native Lucene Queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:482
+#, no-c-format
+msgid ""
+"If you wish to use some specific features of Lucene, you can always run "
+"Lucene specific queries. Check <xref linkend=\"Hibernate_Search-Lucene_Native"
+"\"/> for more informations."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Revision_History.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Revision_History.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Revision_History.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,33 @@
+# Language fr-FR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Danielle</firstname> <surname>Coulson</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Content reformat"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Architecture.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Architecture.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Architecture.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,367 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture.xml:6
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:9
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:11
+#, no-c-format
+msgid ""
+"Hibernate Search consists of an indexing and an index search engine. Both "
+"are backed by Apache Lucene."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:14
+#, no-c-format
+msgid ""
+"When an entity is inserted, updated or removed in/from the database, "
+"Hibernate Search keeps track of this event (through the Hibernate event "
+"system) and schedules an index update. All the index updates are handled for "
+"you without you having to use the Apache Lucene APIs (see <xref linkend="
+"\"Hibernate_Search-Configuration-Event\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:19
+#, no-c-format
+msgid ""
+"To interact with Apache Lucene indexes, Hibernate Search has the notion of "
+"<classname>DirectoryProvider</classname>s. A directory provider will manage "
+"a given Lucene <classname>Directory</classname> type. You can configure "
+"directory providers to adjust the directory target (see <xref linkend="
+"\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:24
+#, no-c-format
+msgid ""
+"Hibernate Search can also use the Lucene index to search an entity and "
+"return a list of managed entities saving you the tedious object to Lucene "
+"document mapping. The same persistence context is shared between Hibernate "
+"and Hibernate Search; as a matter of fact, the Search Session is built on "
+"top of the Hibernate Session. The application code use the unified "
+"<classname>org.hibernate.Query</classname> or <classname>javax.persistence."
+"Query</classname> APIs exactly the way a HQL, JPA-QL or native queries would "
+"do."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:33
+#, no-c-format
+msgid ""
+"To be more efficient, Hibernate Search batches the write interactions with "
+"the Lucene index. There is currently two types of batching depending on the "
+"expected scope."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:37
+#, no-c-format
+msgid ""
+"Outside a transaction, the index update operation is executed right after "
+"the actual database operation. This scope is really a no scoping setup and "
+"no batching is performed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:41
+#, no-c-format
+msgid ""
+"It is however recommended, for both your database and Hibernate Search, to "
+"execute your operation in a transaction be it JDBC or JTA. When in a "
+"transaction, the index update operation is scheduled for the transaction "
+"commit and discarded in case of transaction rollback. The batching scope is "
+"the transaction. There are two immediate benefits:"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:50
+#, no-c-format
+msgid ""
+"Performance: Lucene indexing works better when operation are executed in "
+"batch."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:55
+#, no-c-format
+msgid ""
+"ACIDity: The work executed has the same scoping as the one executed by the "
+"database transaction and is executed if and only if the transaction is "
+"committed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:60
+#, no-c-format
+msgid ""
+"Disclaimer, the work in not ACID in the strict sense of it, but ACID "
+"behavior is rarely useful for full text search indexes since they can be "
+"rebuilt from the source at any time."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:67
+#, no-c-format
+msgid ""
+"You can think of those two scopes (no scope vs transactional) as the "
+"equivalent of the (infamous) auto-commit vs transactional behavior. From a "
+"performance perspective, the <emphasis>in transaction</emphasis> mode is "
+"recommended. The scoping choice is made transparently: Hibernate Search "
+"detects the presence of a transaction and adjust the scoping."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:74
+#, no-c-format
+msgid ""
+"Hibernate Search works perfectly fine in the Hibernate / EntityManager long "
+"conversation pattern aka. atomic conversation."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:80
+#, no-c-format
+msgid ""
+"Depending on user demand, additional scoping will be considered, the "
+"pluggability mechanism being already in place."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:87
+#, no-c-format
+msgid "Back End"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:89
+#, no-c-format
+msgid ""
+"Hibernate Search offers the ability to let the scoped work being processed "
+"by different back ends. Two back ends are provided out of the box for two "
+"different scenarios."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:96
+#, no-c-format
+msgid ""
+"Hibernate Search is an extensible architecture. While not yet part of the "
+"public API, plugging a third party back end is possible. Feel free to drop "
+"ideas to <literal>hibernate-dev at lists.jboss.org</literal>."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:102
+#, no-c-format
+msgid "Lucene"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:104
+#, no-c-format
+msgid ""
+"In this mode, all index update operations applied on a given node (JVM) will "
+"be executed to the Lucene directories (through the directory providers) by "
+"the same node. This mode is typically used in non clustered environment or "
+"in clustered environments where the directory store is shared."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:120
+#, no-c-format
+msgid ""
+"This mode targets non clustered applications, or clustered applications "
+"where the Directory is taking care of the locking strategy."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:126
+#, no-c-format
+msgid ""
+"The main advantage is simplicity and immediate visibility of the changes in "
+"Lucene queries (a requirement is some applications)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:133
+#, no-c-format
+msgid "<title>JMS</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:135
+#, no-c-format
+msgid ""
+"All index update operations applied on a given node are sent to a JMS queue. "
+"A unique reader will then process the queue and update the master Lucene "
+"index. The master index is then replicated on a regular basis to the slave "
+"copies. This is known as the master / slaves pattern. The master is the sole "
+"responsible for updating the Lucene index. The slaves can accept read as "
+"well as write operations. However, they only process the read operation on "
+"their local index copy and delegate the update operations to the master."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:153
+#, no-c-format
+msgid ""
+"This mode targets clustered environments where throughput is critical, and "
+"index update delays are affordable. Reliability is ensured by the JMS "
+"provider and by having the slaves working on a local copy of the index."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:161
+#, no-c-format
+msgid "Work Execution"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:163
+#, no-c-format
+msgid ""
+"The indexing work (done by the back end) can be executed synchronously with "
+"the transaction commit (or update operation if out of transaction), or "
+"asynchronously."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:168
+#, no-c-format
+msgid "Synchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:170
+#, no-c-format
+msgid ""
+"This is the safe mode where the back end work is executed in concert with "
+"the transaction commit. Under highly concurrent environment, this can lead "
+"to throughput limitations (due to the Apache Lucene lock mechanism) and it "
+"can increase the system response time if the backend is significantly slower "
+"than the transactional process and if a lot of IO operations are involved."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:179
+#, no-c-format
+msgid "Asynchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:181
+#, no-c-format
+msgid ""
+"This mode delegates the work done by the back end to a different thread. "
+"That way, throughput and response time are (to a certain extend) "
+"decorrelated from the back end performance. The drawback is that a small "
+"delay appears between the transaction commit and the index update and a "
+"small overhead is introduced to deal with thread management."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:187
+#, no-c-format
+msgid ""
+"It is recommended to use synchronous execution first and evaluate "
+"asynchronous execution if performance problems occur and after having set up "
+"a proper benchmark (i.e. not a lonely cowboy hitting the system in a "
+"completely unrealistic way)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:195
+#, no-c-format
+msgid "Reader Strategy"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:197
+#, no-c-format
+msgid ""
+"When executing a query, Hibernate Search interacts with the Apache Lucene "
+"indexes through a reader strategy. Choosing a reader strategy will depend on "
+"the profile of the application (frequent updates, read mostly, asynchronous "
+"index update etc). See also"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:204
+#, no-c-format
+msgid "Shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:206
+#, no-c-format
+msgid ""
+"With this strategy, Hibernate Search will share the same IndexReader, for a "
+"given Lucene index, across multiple queries and threads provided that the "
+"IndexReader is still up-to-date. If the IndexReader is not up-to-date, a new "
+"one is opened and provided. Generally speaking, this strategy provides much "
+"better performances than the <literal>not-shared</literal> strategy. It is "
+"especially true if the number of updates is much lower than the reads. This "
+"strategy is the default."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:217
+#, no-c-format
+msgid "Not-shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:219
+#, no-c-format
+msgid ""
+"Every time a query is executed, a Lucene IndexReader is opened. This "
+"strategy is not the most efficient since opening and warming up an "
+"IndexReader can be a relatively expensive operation."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:225
+#, no-c-format
+msgid "Custom"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:227
+#, no-c-format
+msgid ""
+"You can write your own reader strategy that suits your application needs by "
+"implementing <classname>org.hibernate.search.reader.ReaderProvider</"
+"classname>. The implementation must be thread safe."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:233
+#, no-c-format
+msgid ""
+"Some additional strategies are planned in future versions of Hibernate Search"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Author_Group.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Author_Group.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,28 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Batch_Index.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Batch_Index.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Batch_Index.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,211 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Batch_Index.xml:6
+#, no-c-format
+msgid "Manual Indexing"
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:9
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:11
+#, no-c-format
+msgid ""
+"It is sometimes useful to index an object even if this object is not "
+"inserted nor updated to the database. This is especially true when you want "
+"to build your index for the first time. You can achieve that goal using the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.index(customer);</"
+"emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:18
+#, no-c-format
+msgid ""
+"For maximum efficiency, Hibernate Search batches index operations and "
+"executes them at commit time (Note: you don't need to use <classname>org."
+"hibernate.Transaction</classname> in a JTA environment)."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:23
+#, no-c-format
+msgid ""
+"If you expect to index a lot of data, you need to be careful about memory "
+"consumption: since all documents are kept in a queue until the transaction "
+"commit, you can potentially face an <classname>OutOfMemoryException</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:28
+#, no-c-format
+msgid ""
+"To avoid that, you can set up the <literal>hibernate.search.worker."
+"batch_size</literal> property to a sensitive value: all index operations are "
+"queued until <literal>batch_size</literal> is reached. Every time "
+"<literal>batch_size</literal> is reached (or if the transaction is "
+"committed), the queue is processed (freeing memory) and emptied. Be aware "
+"that the changes cannot be rolled-back if the number of index elements goes "
+"beyond <literal>batch_size</literal>. Be also aware that the queue limits "
+"are also applied on regular transparent indexing (and not only when "
+"<literal>session.index()</literal> is used). That's why a sensitive "
+"<literal>batch_size</literal> value is expected."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:40
+#, no-c-format
+msgid ""
+"Other parameters which also can affect indexing time and memory consumption "
+"are <literal>hibernate.search.[default|&lt;indexname&gt;].batch."
+"merge_factor</literal> , <literal>hibernate.search.[default|&lt;"
+"indexname&gt;].batch.max_merge_docs</literal> and <literal>hibernate.search."
+"[default|&lt;indexname&gt;].batch.max_buffered_docs</literal> . These "
+"parameters are Lucene specific and Hibernate Search is just passing these "
+"parameters through - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:50
+#, no-c-format
+msgid ""
+"Here is an especially efficient way to index a given class (useful for index "
+"(re)initialization):"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:53
+#, no-c-format
+msgid ""
+"fullTextSession.setFlushMode(FlushMode.MANUAL);\n"
+"                fullTextSession.setCacheMode(CacheMode.IGNORE);\n"
+"                transaction = fullTextSession.beginTransaction();\n"
+"                //Scrollable results will avoid loading too many objects in "
+"memory\n"
+"                ScrollableResults results = fullTextSession.createCriteria"
+"( Email.class ).scroll(\n"
+"                ScrollMode.FORWARD_ONLY );\n"
+"                int index = 0;\n"
+"                while( results.next() ) {\n"
+"                index++;\n"
+"                fullTextSession.index( results.get(0) ); //index each "
+"element\n"
+"                if (index % batchSize == 0) s.clear(); //clear every "
+"batchSize since the queue is processed\n"
+"                }\n"
+"                transaction.commit();"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:55
+#, no-c-format
+msgid ""
+"It is critical that <literal>batchSize</literal> in the previous example "
+"matches the <literal>batch_size</literal> value described previously."
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:61
+#, no-c-format
+msgid "Purging"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:63
+#, no-c-format
+msgid ""
+"It is equally possible to remove an entity or all entities of a given type "
+"from a Lucene index without the need to physically remove them from the "
+"database. This operation is named purging and is done through the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.purge( Customer."
+"class, customer.getId() );</emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:70
+#, no-c-format
+msgid ""
+"Purging will remove the entity with the given id from the Lucene index but "
+"will not touch the database."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:73
+#, no-c-format
+msgid ""
+"If you need to remove all entities of a given type, you can use the "
+"<command>purgeAll</command> method."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:76
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                <emphasis role=\"bold\">fullTextSession.purgeAll( Customer."
+"class );</emphasis>\n"
+"                //optionally optimize the index\n"
+"                //fullTextSession.getSearchFactory().optimize( Customer."
+"class );\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:78
+#, no-c-format
+msgid "It is recommended to optimize the index after such an operation."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:82
+#, no-c-format
+msgid ""
+"Methods <command>index</command>, <command>purge</command> and "
+"<command>purgeAll</command> are available on "
+"<classname>FullTextEntityManager</classname> as well"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Book_Info.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Book_Info.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,54 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate Search Reference Guide CP04 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "Apache <trademark>Lucene</trademark> Integration"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:8
+#, no-c-format
+msgid ""
+"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 4 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is a Reference Guide to Hibernate Search for JBoss Enterprise "
+"Application Platform 4.3.0 CP04 FP01"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:24
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:29
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Configuration.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Configuration.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Configuration.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1155 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuration.xml:6
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:9
+#, no-c-format
+msgid "Directory Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:11
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. The Directory implementation can be customized, but Lucene "
+"comes bundled with a file system (<literal>FSDirectoryProvider</literal>) "
+"and a in memory (<literal>RAMDirectoryProvider</literal>) implementation. "
+"Hibernate Search has the notion of <literal>DirectoryProvider</literal> that "
+"handles the configuration and the initialization of the Lucene Directory."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:20
+#, no-c-format
+msgid ""
+"List of built-in Directory Providers in the namespace of org.hibernate."
+"search.store."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:25
+#, no-c-format
+msgid "Class"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:27 Configuration.xml:243 Configuration.xml:528
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:29
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:35
+#, no-c-format
+msgid "FSDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:37
+#, no-c-format
+msgid ""
+"File system based directory. The directory used will be &lt;indexBase&gt;/"
+"&lt; <literal>@Indexed.name</literal> &gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:41
+#, no-c-format
+msgid "<literal>indexBase</literal> : Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:42 Configuration.xml:60 Configuration.xml:85
+#, no-c-format
+msgid ""
+"<literal>indexName</literal>: override @Index.name (useful for sharded "
+"indexes)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:47
+#, no-c-format
+msgid "FSMasterDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:49
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider. It also copies the "
+"index to a source directory (aka copy directory) on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:52 Configuration.xml:77
+#, no-c-format
+msgid ""
+"The recommended value for the refresh period is (at least) 50% higher that "
+"the time to copy the information (default 3600 seconds - 60 minutes)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:53 Configuration.xml:79
+#, no-c-format
+msgid ""
+"Note that the copy is based on an incremental copy mechanism reducing the "
+"average copy time."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:55
+#, no-c-format
+msgid ""
+"DirectoryProvider typically used on the master node in a JMS back end "
+"cluster."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:56
+#, no-c-format
+msgid ""
+"<entry>DirectoryProvider typically used on slave nodes using a JMS back end."
+"</entry>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:59 Configuration.xml:84
+#, no-c-format
+msgid "<literal>indexBase</literal>: Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:62 Configuration.xml:87
+#, no-c-format
+msgid "<literal>sourceBase</literal>: Source (copy) base directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:63 Configuration.xml:88
+#, no-c-format
+msgid ""
+"<literal>source</literal>: Source directory suffix (default to "
+"<literal>@Indexed.name</literal>). The actual source directory name being "
+"<filename>&lt;sourceBase&gt;/&lt;source&gt;</filename>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:67 Configuration.xml:92
+#, no-c-format
+msgid ""
+"refresh: refresh period in second (the copy will take place every refresh "
+"seconds)."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:72
+#, no-c-format
+msgid "FSSlaveDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:74
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider, but retrieves a "
+"master version (source) on a regular basis. To avoid locking and "
+"inconsistent search results, 2 local copies are kept."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:81
+#, no-c-format
+msgid ""
+"<para>DirectoryProvider typically used on slave nodes using a JMS back end.</"
+"para>"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:97
+#, no-c-format
+msgid "RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:99
+#, no-c-format
+msgid ""
+"Memory based directory, the directory will be uniquely identified (in the "
+"same deployment unit) by the <literal>@Indexed.name</literal> element"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:103
+#, no-c-format
+msgid "none"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:109
+#, no-c-format
+msgid ""
+"If the built-in directory providers does not fit your needs, you can write "
+"your own directory provider by implementing the <classname>org.hibernate."
+"store.DirectoryProvider</classname> interface"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:114
+#, no-c-format
+msgid ""
+"Each indexed entity is associated to a Lucene index (an index can be shared "
+"by several entities but this is not usually the case). You can configure the "
+"index through properties prefixed by <command>hibernate.search.</"
+"command><replaceable>indexname</replaceable> . Default properties inherited "
+"to all indexes can be defined using the prefix <command>hibernate.search."
+"default.</command>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:121
+#, no-c-format
+msgid ""
+"To define the directory provider of a given index, you use the property "
+"<literal>hibernate.search.<replaceable>indexname</replaceable>."
+"directory_provider </literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:125
+#, no-c-format
+msgid ""
+"hibernate.search.default.directory_provider  org.hibernate.search.store."
+"FSDirectoryProvider\n"
+"                        hibernate.search.default.indexBase=/usr/lucene/"
+"indexes\n"
+"                        \n"
+"                        hibernate.search.Rules.directory_provider  org."
+"hibernate.search.store.RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:127
+#, no-c-format
+msgid "applied on"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:129
+#, no-c-format
+msgid ""
+"@Indexed(name=\"Status\")\n"
+"public class Status { ... }\n"
+"                        \n"
+"@Indexed(name=\"Rules\")\n"
+"public class Rule { ... }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:131
+#, no-c-format
+msgid ""
+"will create a file system directory in <filename>/usr/lucene/indexes/Status</"
+"filename> where the Status entities will be indexed, and use an in memory "
+"directory named <literal>Rules</literal> where Rule entities will be indexed."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:136
+#, no-c-format
+msgid ""
+"You can easily define common rules like the directory provider and base "
+"directory, and override those default later on on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:140
+#, no-c-format
+msgid ""
+"Writing your own <classname>DirectoryProvider</classname>, you can utilize "
+"this configuration mechanism as well."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:145
+#, no-c-format
+msgid "Index Sharding"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:147
+#, no-c-format
+msgid ""
+"In some extreme cases involving huge indexes (in size), it is necessary to "
+"split (shard) the indexing data of a given entity type into several Lucene "
+"indexes. This solution is not recommended until you reach significant index "
+"sizes and index update time are slowing down. The main drawback of index "
+"sharding is that searches will end up being slower since more files have to "
+"be opened for a single search. In other words don't do it until you have "
+"problems :)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:155
+#, no-c-format
+msgid ""
+"Despite this strong warning, Hibernate Search allows you to index a given "
+"entity type into several sub indexes. Data is sharded into the different sub "
+"indexes thanks to an <classname>IndexShardingStrategy</classname>. By "
+"default, no sharding strategy is enabled, unless the number of shards is "
+"configured. To configure the number of shards use the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:162
+#, no-c-format
+msgid "hibernate.search.&lt;indexName&gt;.sharding_strategy.nbr_of_shards 5"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:164
+#, no-c-format
+msgid "This will use 5 different shards."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:166
+#, no-c-format
+msgid ""
+"The default sharding strategy, when shards are set up, splits the data "
+"according to the hash value of the id string representation (generated by "
+"the Field Bridge). This ensures a fairly balanced sharding. You can replace "
+"the strategy by implementing <literal>IndexShardingStrategy</literal> and by "
+"setting the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:173
+#, no-c-format
+msgid ""
+"hibernate.search.&lt;indexName&gt;.sharding_strategy my.shardingstrategy."
+"Implementation"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:175
+#, no-c-format
+msgid ""
+"Each shard has an independent directory provider configuration as described "
+"in <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>. The "
+"DirectoryProvider default name for the previous example are <literal>&lt;"
+"indexName&gt;.0</literal> to <literal>&lt;indexName&gt;.4</literal>. In "
+"other words, each shard has the name of it's owning index followed by "
+"<command>.</command> (dot) and its index number."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:183
+#, no-c-format
+msgid ""
+"hibernate.search.default.indexBase /usr/lucene/indexes\n"
+"                        \n"
+"                        hibernate.search.Animal.sharding_strategy."
+"nbr_of_shards 5\n"
+"                        hibernate.search.Animal.directory_provider org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        hibernate.search.Animal.0.indexName Animal00\n"
+"                        hibernate.search.Animal.3.indexBase /usr/lucene/"
+"sharded\n"
+"                        hibernate.search.Animal.3.indexName Animal03"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:185
+#, no-c-format
+msgid ""
+"This configuration uses the default id string hashing strategy and shards "
+"the Animal index into 5 sub-indexes. All sub-indexes are FSDirectoryProvider "
+"instances and the directory where each sub-index is stored is as followed:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:192
+#, no-c-format
+msgid ""
+"for subindex 0: /usr/lucene/indexes/Animal00 (shared indexBase but "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:197
+#, no-c-format
+msgid ""
+"for subindex 1: /usr/lucene/indexes/Animal.1 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:202
+#, no-c-format
+msgid ""
+"for subindex 2: /usr/lucene/indexes/Animal.2 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:207
+#, no-c-format
+msgid ""
+"for subindex 3: /usr/lucene/shared/Animal03 (overridden indexBase, "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:212
+#, no-c-format
+msgid ""
+"for subindex 4: /usr/lucene/indexes/Animal.4 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:219
+#, no-c-format
+msgid "Worker Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:221
+#, no-c-format
+msgid ""
+"It is possible to refine how Hibernate Search interacts with Lucene through "
+"the worker configuration. The work can be executed to the Lucene directory "
+"or sent to a JMS queue for later processing. When processed to the Lucene "
+"directory, the work can be processed synchronously or asynchronously to the "
+"transaction commit."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:227
+#, no-c-format
+msgid "You can define the worker configuration using the following properties"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:231
+#, no-c-format
+msgid "Worker Configuration (in the namespace of hibernate.worker)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:241 Configuration.xml:526
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:247
+#, no-c-format
+msgid "backend"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:249
+#, no-c-format
+msgid ""
+"Out of the box support for the Apache Lucene back end and the JMS back end. "
+"Default to <literal>lucene</literal>. Supports also <literal>jms</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:255
+#, no-c-format
+msgid "execution"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:257
+#, no-c-format
+msgid ""
+"Supports synchronous and asynchrounous execution. Default to "
+"<literal><literal>sync</literal></literal>. Supports also <literal>async</"
+"literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:263
+#, no-c-format
+msgid "thread_pool.size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:265
+#, no-c-format
+msgid ""
+"Defines the number of threads in the pool. useful only for asynchrounous "
+"execution. Default to 1."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:270
+#, no-c-format
+msgid "buffer_queue.max"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:272
+#, no-c-format
+msgid ""
+"Defines the maximal number of work queue if the thread poll is starved. "
+"Useful only for asynchrounous execution. Default to infinite. If the limit "
+"is reached, the work is done by the main thread."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:279
+#, no-c-format
+msgid "jndi.*"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:281
+#, no-c-format
+msgid ""
+"Defines the JNDI properties to initiate the InitialContext (if needed). JNDI "
+"is only used by the JMS back end."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:286
+#, no-c-format
+msgid "jms.connection_factory"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:289
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"connection factory from (<literal>java:/ConnectionFactory</literal> by "
+"default in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:296
+#, no-c-format
+msgid "jms.queue"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:298
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"queue from. The queue will be used to post work messages."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:304
+#, no-c-format
+msgid "batch_size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:306
+#, no-c-format
+msgid ""
+"Defines the maximum number of elements indexed before flushing the "
+"transaction-bound queue. Default to 0 (i.e. no limit). See <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:317
+#, no-c-format
+msgid "JMS Master/Slave Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:319
+#, no-c-format
+msgid ""
+"This section describes in greater detail how to configure the Master / "
+"Slaves Hibernate Search architecture."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:323
+#, no-c-format
+msgid "Slave Nodes"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:325
+#, no-c-format
+msgid ""
+"Every index update operation is sent to a JMS queue. Index querying "
+"operations are executed on a local index copy."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:328
+#, no-c-format
+msgid ""
+"### slave configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local copy location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSSlaveDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                hibernate.search.worker.backend = jms\n"
+"                                hibernate.search.worker.jms."
+"connection_factory = java:/ConnectionFactory\n"
+"                                hibernate.search.worker.jms.queue = queue/"
+"hibernatesearch\n"
+"                                #optional jndi configuration (check your JMS "
+"provider for more information)\n"
+"                                \n"
+"                                ## Optional asynchronous execution strategy\n"
+"                                # org.hibernate.worker.execution = async\n"
+"                                # org.hibernate.worker.thread_pool.size = 2\n"
+"                                # org.hibernate.worker.buffer_queue.max = 50"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:330
+#, no-c-format
+msgid "A file system local copy is recommended for faster search results."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:333 Configuration.xml:345
+#, no-c-format
+msgid "The refresh period should be higher that the expected time copy."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:338
+#, no-c-format
+msgid "Master node"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:340
+#, no-c-format
+msgid ""
+"Every index update operation is taken from a JMS queue and executed. The "
+"master index(es) is(are) copied on a regular basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:343
+#, no-c-format
+msgid ""
+"### master configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location where information "
+"is copied to\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local master location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSMasterDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                #Backend is the default lucene one"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:348
+#, no-c-format
+msgid ""
+"In addition to the Hibernate Search framework configuration, a Message "
+"Driven Bean should be written and set up to process index works queue "
+"through JMS."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:352
+#, no-c-format
+msgid ""
+"@MessageDriven(activationConfig = {\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destinationType\", propertyValue=\"javax.jms.Queue\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destination\", propertyValue=\"queue/hiebrnatesearch\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"DLQMaxResent\", propertyValue=\"1\")\n"
+"                                } )\n"
+"                                public class MDBSearchController extends "
+"AbstractJMSHibernateSearchController implements MessageListener {\n"
+"                                @PersistenceContext EntityManager em;\n"
+"                                \n"
+"                                //method retrieving the appropriate session\n"
+"                                protected Session getSession() {\n"
+"                                return (Session) em.getDelegate();\n"
+"                                }\n"
+"                                \n"
+"                                //potentially close the session opened in "
+"#getSession(), not needed here\n"
+"                                protected void cleanSessionIfNeeded(Session "
+"session) \n"
+"                                }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:354
+#, no-c-format
+msgid ""
+"This example inherit the abstract JMS controller class available and "
+"implements a JavaEE 5 MDB. This implementation is given as an example and, "
+"while most likely more complex, can be adjusted to make use of non Java EE "
+"Message Driven Beans. For more information about the <command>getSession()</"
+"command> and <command>cleanSessionIfNeeded()</command>, please check "
+"<classname>AbstractJMSHibernateSearchController</classname>'s javadoc."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:364
+#, no-c-format
+msgid ""
+"Hibernate Search test suite makes use of JBoss Embedded to test the JMS "
+"integration. It allows the unit test to run both the MDB container and JBoss "
+"Messaging (JMS provider) in a standalone way (marketed by some as "
+"\"lightweight\")."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:373
+#, no-c-format
+msgid "Reader Strategy Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:375
+#, no-c-format
+msgid ""
+"The different reader strategies are described in <xref linkend="
+"\"Hibernate_Search-Architecture-Reader_Strategy\"/>. The default reader "
+"strategy is <literal>shared</literal>. This can be adjusted:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:378
+#, no-c-format
+msgid "hibernate.search.reader.strategy = not-shared"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:380
+#, no-c-format
+msgid ""
+"Adding this property switch to the <literal>non shared</literal> strategy."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:383
+#, no-c-format
+msgid "Or if you have a custom reader strategy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:385
+#, no-c-format
+msgid "hibernate.search.reader.strategy = my.corp.myapp.CustomReaderProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:387
+#, no-c-format
+msgid ""
+"where <classname>my.corp.myapp.CustomReaderProvider</classname> is the "
+"custom strategy implementation"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:392
+#, no-c-format
+msgid "Enabling Hibernate Search and automatic indexing"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:395
+#, no-c-format
+msgid "Enabling Hibernate Search"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:397
+#, no-c-format
+msgid ""
+"Hibernate Search is enabled out of the box when using Hibernate Annotations "
+"or Hibernate EntityManager. If, for some reason you need to disable it, set "
+"<literal>hibernate.search.autoregister_listeners</literal> to false. Note "
+"that there is no performance runtime when the listeners are enabled while no "
+"entity is indexable."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:404
+#, no-c-format
+msgid ""
+"To enable Hibernate Search in Hibernate Core, add the "
+"<literal>FullTextIndexEventListener</literal> for the three Hibernate events "
+"that occur after changes are executed to the database. Once again, such a "
+"configuration is not useful with Hibernate Annotations or Hibernate "
+"EntityManager."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:410
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                &lt;session-factory&gt;\n"
+"                                ...\n"
+"                                &lt;event type=\"post-update\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-insert\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-delete\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;/session-factory&gt;\n"
+"                                &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:412
+#, no-c-format
+msgid ""
+"Be sure to add the appropriate jar files in your classpath. Check "
+"<literal>lib/README.TXT</literal> for the list of third party libraries. A "
+"typical installation on top of Hibernate Annotations will add:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:418
+#, no-c-format
+msgid "<filename>hibernate-search.jar</filename>: the core engine"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:423
+#, no-c-format
+msgid "<filename>lucene-core-*.jar</filename>: Lucene core engine"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:429
+#, no-c-format
+msgid "Hibernate Core 3.2.6 and beyond"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:431
+#, no-c-format
+msgid ""
+"If you use Hibernate Core 3.2.6 and beyond, make sure to add three "
+"additional event listeners that cope with collection events"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:435
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                        &lt;session-factory&gt;\n"
+"                                        ...\n"
+"                                        &lt;event type=\"post-collection-"
+"recreate\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"remove\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"update\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;/session-factory&gt;\n"
+"                                        &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:437
+#, no-c-format
+msgid ""
+"Those additional event listeners have been introduced in Hibernate 3.2.6. "
+"note the <classname>FullTextIndexCollectionEventListener</classname> usage. "
+"You need to explicitly reference those event listeners unless you use "
+"Hibernate Annotations 3.3.1 and above."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:446
+#, no-c-format
+msgid "Automatic indexing"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:448
+#, no-c-format
+msgid ""
+"By default, every time an object is inserted, updated or deleted through "
+"Hibernate, Hibernate Search updates the according Lucene index. It is "
+"sometimes desirable to disable that features if either your index is read-"
+"only or if index updates are done in a batch way (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:453
+#, no-c-format
+msgid "To disable event based indexing, set"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:455
+#, no-c-format
+msgid "hibernate.search.indexing_strategy manual"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:458
+#, no-c-format
+msgid ""
+"In most case, the JMS backend provides the best of both world, a lightweight "
+"event based system keeps track of all changes in the system, and the "
+"heavyweight indexing process is done by a separate process or machine."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:467
+#, no-c-format
+msgid "Tuning Lucene indexing performance"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:469
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to tune the Lucene indexing performance by "
+"specifying a set of parameters which are passed through to underlying Lucene "
+"<literal>IndexWriter</literal> such as <literal>mergeFactor</literal>, "
+"<literal>maxMergeDocs</literal> and <literal>maxBufferedDocs</literal>. You "
+"can specify these parameters either as default values applying for all "
+"indexes or on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:477
+#, no-c-format
+msgid ""
+"There are two sets of parameters allowing for different performance settings "
+"depending on the use case. During indexing operations triggered by database "
+"modifications, the following ones are used: <itemizedlist> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"merge_factor</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_merge_docs</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_buffered_docs</literal></para> </listitem> </itemizedlist>When indexing "
+"occurs via <literal>FullTextSession.index()</literal> (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>), the following properties are used:"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:495
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.merge_factor"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:499
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:503
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:507
+#, no-c-format
+msgid ""
+"Unless the corresponding <literal>.batch</literal> property is explicitly "
+"set, the value will default to the <literal>.transaction</literal> property."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:511
+#, no-c-format
+msgid ""
+"For more information about Lucene indexing performances, please refer to the "
+"Lucene documentation."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:515
+#, no-c-format
+msgid ""
+"List of indexing performance properties in the namespace of hibernate.search."
+"[default|&lt;indexname&gt;]"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:530
+#, no-c-format
+msgid "Default Value"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:536
+#, no-c-format
+msgid "transaction.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:538 Configuration.xml:578
+#, no-c-format
+msgid "Controls segment merge frequency and size."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:539 Configuration.xml:579
+#, no-c-format
+msgid ""
+"Determines how often segment indices are merged when insertion occurs. With "
+"smaller values, less RAM is used while indexing, and searches on unoptimized "
+"indices are faster, but indexing speed is slower. With larger values, more "
+"RAM is used during indexing, and while searches on unoptimized indices are "
+"slower, indexing is faster. Thus larger values (&gt; 10) are best for batch "
+"index creation, and smaller values (&lt; 10) for indices that are "
+"interactively maintained. The value must no be lower than 2."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:547 Configuration.xml:557 Configuration.xml:569
+#, no-c-format
+msgid ""
+"Used by Hibernate Search during index update operations as part of database "
+"modifications."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:550 Configuration.xml:572 Configuration.xml:590
+#: Configuration.xml:611
+#, no-c-format
+msgid "<entry>10</entry>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:554
+#, no-c-format
+msgid "transaction.max_merge_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:556 Configuration.xml:596
+#, no-c-format
+msgid "Defines the largest number of documents allowed in a segment."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:560 Configuration.xml:600
+#, no-c-format
+msgid "Unlimited (Integer.MAX_VALUE)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:564
+#, no-c-format
+msgid "transaction. max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:567 Configuration.xml:606
+#, no-c-format
+msgid ""
+"Controls the amount of documents buffered in memory during indexing. The "
+"bigger the more RAM is consumed."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:576
+#, no-c-format
+msgid "batch.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:587 Configuration.xml:597 Configuration.xml:608
+#, no-c-format
+msgid "Used during indexing via <literal>FullTextSession.index()</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:594
+#, no-c-format
+msgid "batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:604
+#, no-c-format
+msgid "batch.max_buffered_docs"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Feedback.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Feedback.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Feedback.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,34 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Getting_Started.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Getting_Started.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Getting_Started.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,606 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"Welcome to Hibernate Search! The following chapter will guide you through "
+"the initial steps required to integrate Hibernate Search into an existing "
+"Hibernate enabled application. In case you are a Hibernate first timer we "
+"recommend you start <ulink url=\"http://hibernate.org/152.html\">here</"
+"ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "System Requirements"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:18
+#, no-c-format
+msgid "System requirements"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:23
+#, no-c-format
+msgid "Java Runtime"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:25
+#, no-c-format
+msgid ""
+"A JDK or JRE version <emphasis>5</emphasis> or greater. You can download a "
+"Java Runtime for Windows/Linux/Solaris <ulink url=\"http://java.sun.com/"
+"javase/downloads/\"> here </ulink>."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:31
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"<literal>hibernate-search.jar</literal> and all dependencies from the "
+"<literal>lib</literal> directory of the Hibernate Search distribution, "
+"especially lucene."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:39
+#, no-c-format
+msgid "Hibernate Core"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:41
+#, no-c-format
+msgid ""
+"These instructions have been tested against Hibernate 3.2.x. Next to the "
+"main <literal>hibernate3.jar</literal> you will need all required libraries "
+"from the <literal>lib</literal> directory of the distribution. Refer to "
+"<literal>README.txt</literal> in the <literal>lib</literal> directory of the "
+"distribution to determine the minimum runtime requirements."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:50
+#, no-c-format
+msgid "Hibernate Annotations"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:52
+#, no-c-format
+msgid ""
+"Although Hibernate Search can be used without Hibernate Annotations the "
+"following instructions use them for ease of use. The tutorial is tested "
+"against version 3.3.x of Hibernate Annotations."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:60
+#, no-c-format
+msgid ""
+"You can download all dependencies from the Hibernate <ulink url=\"http://www."
+"hibernate.org/6.html\">download site</ulink>. You can also verify the "
+"dependency versions against the <ulink url=\"http://www.hibernate.org/6."
+"html#A3\">Hibernate Compatibility Matrix</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:65
+#, no-c-format
+msgid "Maven"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:67
+#, no-c-format
+msgid ""
+"Instead of managing all dependencies yourself, maven users are able to use "
+"the <ulink url=\"http://repository.jboss.com/maven2\">JBoss maven "
+"repository</ulink>. Just add the JBoss repository url to the "
+"<emphasis>repositories</emphasis> section of your <filename>pom.xml</"
+"filename> or <filename>settings.xml</filename>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:73
+#, no-c-format
+msgid ""
+"&lt;repository&gt;\n"
+"                           &lt;id&gt;repository.jboss.org&lt;/id&gt;\n"
+"                        &lt;name&gt;JBoss Maven Repository&lt;/name&gt;\n"
+"                        &lt;url&gt;http://repository.jboss.org/maven2&lt;/"
+"url&gt;\n"
+"                        &lt;layout&gt;default&lt;/layout&gt;\n"
+"                        &lt;/repository&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:75
+#, no-c-format
+msgid "Then add the following dependencies to your pom.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:77
+#, no-c-format
+msgid ""
+"&lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-search&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.0.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-annotations&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-entitymanager&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.1.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:79
+#, no-c-format
+msgid ""
+"Not all three dependencies are required. <emphasis>hibernate-search</"
+"emphasis> alone contains everything needed to use Hibernate Search. "
+"<emphasis>hibernate-annotations</emphasis> is only needed if you use non-"
+"Hibernate Search annotations, which are used in the examples of this "
+"tutorial. Note that <emphasis>hibernate-entitymanager</emphasis> is only "
+"required if you use Hibernate Search in conjunction with JPA."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:87
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:89
+#, no-c-format
+msgid ""
+"Once all required dependencies have been downloaded and added to your "
+"application, you will need to add some properties to your hibernate "
+"configuration file. If you are using Hibernate directly this can be done in "
+"<literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</"
+"literal>. If you are using Hibernate via JPA you can also add the properties "
+"to <literal>persistence.xml</literal>. The default properties are suitable "
+"for the standard use."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:92
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. Hibernate Search handles the initialization and configuration "
+"of a Lucene <literal>Directory</literal> instance via a "
+"<literal>DirectoryProvider</literal>. In this tutorial we will use a "
+"subclass of <literal>DirectoryProvider</literal> called "
+"<classname>FSDirectoryProvider</classname>. This will give us the ability to "
+"physically inspect the Lucene indexes created by Hibernate Search (e.g. via "
+"<ulink url=\"http://www.getopt.org/luke/\">Luke</ulink>). Once you have a "
+"working configuration you can start experimenting with other directory "
+"providers (see <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:103
+#, no-c-format
+msgid ""
+"Lets assume that your application contains the Hibernate managed class "
+"<classname>example.Book</classname> and you now want to add free text search "
+"capabilities to your application in order to search body and summary of the "
+"books contained in your database."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:108
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        private Integer id; \n"
+"                        private String body;  \n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:110
+#, no-c-format
+msgid ""
+"First you need to tell Hibernate Search which <classname>DirectoryProvider</"
+"classname> to use. This can be achieved by setting the <literal>hibernate."
+"search.default.directory_provider</literal> property. You also have to "
+"specify the default root directory for all indexes via <literal>hibernate."
+"search.default.indexBase</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:116
+#, no-c-format
+msgid ""
+"...\n"
+"                        # the default directory provider\n"
+"                        hibernate.search.default.directory_provider = org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        \n"
+"                        # the default base directory for the indecies\n"
+"                        hibernate.search.default.indexBase = /var/lucene/"
+"indexes    \n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:118
+#, no-c-format
+msgid ""
+"Now add three annotations to the <classname>Book</classname> class. The "
+"first annotation <literal>@Indexed</literal> marks <classname>Book</"
+"classname> as indexable. By design Hibernate Search needs to store an "
+"untokenized id in the index to ensure index unicity for a given entity. "
+"<literal>@DocumentId</literal> marks the property to use for this purpose. "
+"Most, if not all of the time, the property is the database primary key. "
+"Finally you will need to index the fields you wish to make searchable. In "
+"our example these fields are <literal>body</literal> and <literal>summary</"
+"literal>. Both properties get annotated with <literal>@Field</literal>. The "
+"property <literal>index=Index.TOKENIZED</literal> will ensure that the text "
+"will be tokenized using the default Lucene analyzer whereas "
+"<literal>store=Store.NO</literal> ensures that the actual data will not be "
+"stored in the index. Usually, tokenizing means chunking a sentence into "
+"individual words (and potentially excluding common words like <literal>a</"
+"literal>, <literal>the </literal>etc)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:135
+#, no-c-format
+msgid ""
+"These settings are sufficient for an initial test. For more details on "
+"entity mapping refer to <xref linkend=\"Hibernate_Search-Mapping-Entity\"/>. "
+"In case you want to store and retrieve the indexed data in order to avoid "
+"database roundtrips, refer to projections in"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:140
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        <emphasis role=\"bold\">@Indexed</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        <emphasis role=\"bold\">@DocumentId</emphasis>\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String body;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:144
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:146
+#, no-c-format
+msgid ""
+"Hibernate Search will index every entity persisted, updated or removed "
+"through Hibernate core transparently for the application. However, the data "
+"already present in your database needs to be indexed once to populate the "
+"Lucene index. Once you have added the above properties and annotations it is "
+"time to trigger an initial batch index of your books. You can achieve this "
+"by adding one of the following code examples to your code (see also <xref "
+"linkend=\"Hibernate_Search-Batch_Index\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:154 Getting_Started.xml:176
+#, no-c-format
+msgid "Example using Hibernate Session:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:156
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        List books = session.createQuery(\"from Book as book"
+"\").list();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextSession.index(book);\n"
+"                        }\n"
+"                        tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:158 Getting_Started.xml:180
+#, no-c-format
+msgid "Example using JPA:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:160
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        FullTextEntityManager fullTextEntityManager = Search."
+"createFullTextEntityManager(em);\n"
+"                        List books = em.createQuery(\"select book from Book "
+"as book\").getResultList();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextEntityManager.index(book);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:162
+#, no-c-format
+msgid ""
+"After executing the above code, you should be able to see a Lucene index "
+"under <literal>/var/lucene/indexes/example.Book</literal>. Go ahead an "
+"inspect this index. It will help you to understand how Hibernate Search "
+"works."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:169
+#, no-c-format
+msgid "Searching"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:171
+#, no-c-format
+msgid ""
+"Now it is time to execute a first search. The following code will prepare a "
+"query against the fields <literal>summary</literal> and <literal>body</"
+"literal>, execute it and return a list of <classname>Book</classname>s:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:178
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        \n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        \n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextSession."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();\n"
+"                        \n"
+"                        tx.commit();\n"
+"                        session.close();"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:182
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        \n"
+"                        FullTextEntityManager fullTextEntityManager = \n"
+"                        org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextEntityManager."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:186
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:188
+#, no-c-format
+msgid ""
+"Assume that one of your indexed book entities contains the text \"Java rocks"
+"\" and you want to get hits for all of the following queries: \"rock\", "
+"\"rocks\", \"rocked\" and \"rocking\". In Lucene this can be achieved by "
+"choosing an analyzer class which applies word stemming during the indexing "
+"process. Hibernate Search offers several ways to configure the analyzer to "
+"use (see <xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:197
+#, no-c-format
+msgid ""
+"Setting the <literal>hibernate.search.analyzer</literal> property in the "
+"configuration file. The specified class will then be the default analyzer."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:203
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the entity level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:208
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the field level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:213
+#, no-c-format
+msgid ""
+"The following example uses the entity level annotation to apply a English "
+"language analyzer which would help you to achieve your goal. The class "
+"<classname>EnglishAnalyzer</classname> is a custom class using the Snowball "
+"English Stemmer from the <ulink url=\"http://lucene.apache.org/java/docs/"
+"lucene-sandbox/\">Lucene Sandbox</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:220
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        @Indexed\n"
+"                        <emphasis role=\"bold\">@Analyzer(impl = example."
+"EnglishAnalyzer.class)</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        @DocumentId\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String body;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ... \n"
+"                        }\n"
+"                        \n"
+"                        public class EnglishAnalyzer extends Analyzer {\n"
+"                        /**\n"
+"                        * {@inheritDoc}\n"
+"                        */\n"
+"                        @Override\n"
+"                        public TokenStream tokenStream(String fieldName, "
+"Reader reader) {\n"
+"                        TokenStream result = new StandardTokenizer(reader);\n"
+"                        result = new StandardFilter(result);\n"
+"                        result = new LowerCaseFilter(result);\n"
+"                        result = new SnowballFilter(result, name);\n"
+"                        return result;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:224
+#, no-c-format
+msgid "What's next"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:226
+#, no-c-format
+msgid ""
+"The above paragraphs hopefully helped you getting started with Hibernate "
+"Search. You should by now have a file system based index and be able to "
+"search and retrieve a list of managed objects via Hibernate Search. The next "
+"step is to get more familiar with the overall architecture (<xref linkend="
+"\"Hibernate_Search-Architecture\"/>) and explore the basic features in more "
+"detail."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:233
+#, no-c-format
+msgid ""
+"Two topics which where only briefly touched in this tutorial were analyzer "
+"configuration (<xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>) and "
+"field bridges (<xref linkend=\"Hibernate_Search-Mapping-Bridge\"/>), both "
+"important features required for more fine-grained indexing."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:238
+#, no-c-format
+msgid ""
+"More advanced topics cover clustering (<xref linkend=\"Hibernate_Search-"
+"Configuration-JMS_Backend\"/>) and large indexes handling (<xref linkend="
+"\"Hibernate_Search-Configuration-Index_Sharding\"/>)."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Hibernate_Search_Reference_Guide_CP04_FP01.po
===================================================================

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Introduction.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Introduction.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,44 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:8
+#, no-c-format
+msgid ""
+"Full text search engines like <productname>Apache Lucene</productname> are "
+"powerful technologies that add efficient free text search capabilities to "
+"applications. However, they suffer several mismatches when dealing with "
+"object domain models. Amongst other things, indexes have to be kept up to "
+"date and mismatches between index structure and domain model as well as "
+"query mismatches need to be avoided."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Hibernate Search indexes your domain model with the help of a few "
+"annotations, takes care of database/index synchronization and brings back "
+"regular managed objects from free text queries. To achieve this Hibernate "
+"Search combines the power of <ulink url=\"http://www.hibernate.org"
+"\">Hibernate</ulink> and <ulink url=\"http://lucene.apache.org\">Apache "
+"Lucene</ulink>."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Lucene_Native.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Lucene_Native.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Lucene_Native.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,161 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Lucene_Native.xml:6
+#, no-c-format
+msgid "Accessing Lucene natively"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:9
+#, no-c-format
+msgid "SearchFactory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:11
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> object keeps track of the "
+"underlying Lucene resources for Hibernate Search, it's also a convenient way "
+"to access Lucene natively. The <classname>SearchFactory</classname> can be "
+"accessed from a <classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:20
+#, no-c-format
+msgid "Accessing a Lucene Directory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:22
+#, no-c-format
+msgid ""
+"You can always access the Lucene directories through plain Lucene, the "
+"Directory structure is in no way different with or without Hibernate Search. "
+"However there are some more convenient ways to access a given Directory. The "
+"<classname>SearchFactory</classname> keeps track of the "
+"<classname>DirectoryProvider</classname>s per indexed class. One directory "
+"provider can be shared amongst several indexed classes if the classes share "
+"the same underlying index directory. While usually not the case, a given "
+"entity can have several <classname>DirectoryProvider</classname>s is the "
+"index is sharded (see <xref linkend=\"Hibernate_Search-Configuration-"
+"Index_Sharding\"/>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:32
+#, no-c-format
+msgid ""
+"DirectoryProvider[] provider = searchFactory.getDirectoryProviders(Order."
+"class);\n"
+"                        org.apache.lucene.store.Directory directory = "
+"provider[0].getDirectory();"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:34
+#, no-c-format
+msgid ""
+"In this example, directory points to the lucene index storing "
+"<classname>Order</classname>s information. Note that the obtained Lucene "
+"directory must not be closed (this is Hibernate Search responsibility)."
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:41
+#, no-c-format
+msgid "Using an IndexReader"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:43
+#, no-c-format
+msgid ""
+"Queries in Lucene are executed on an <literal>IndexReader</literal>. "
+"Hibernate Search caches such index readers to maximize performances. Your "
+"code can access such cached / shared resources. You will just have to follow "
+"some \"good citizen\" rules."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:48
+#, no-c-format
+msgid ""
+"DirectoryProvider orderProvider = searchFactory.getDirectoryProviders(Order."
+"class)[0];\n"
+"                        DirectoryProvider clientProvider = searchFactory."
+"getDirectoryProviders(Client.class)[0];\n"
+"                        \n"
+"                        ReaderProvider readerProvider = searchFactory."
+"getReaderProvider();\n"
+"                        IndexReader reader = readerProvider.openReader"
+"(orderProvider, clientProvider);\n"
+"                        \n"
+"                        try {\n"
+"                        //do read-only operations on the reader\n"
+"                        }\n"
+"                        finally {\n"
+"                        readerProvider.closeReader(reader);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:50
+#, no-c-format
+msgid ""
+"The ReaderProvider (described in <xref linkend=\"Hibernate_Search-"
+"Architecture-Reader_Strategy\"/>), will open an IndexReader on top of the "
+"index(es) referenced by the directory providers. This IndexReader being "
+"shared amongst several clients, you must adhere to the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:57
+#, no-c-format
+msgid ""
+"Never call indexReader.close(), but always call readerProvider.closeReader"
+"(reader); (a finally block is the best area)."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:63
+#, no-c-format
+msgid ""
+"This indexReader must not be used for modification operations (especially "
+"delete), if you want to use an read/write index reader, open one from the "
+"Lucene Directory object."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:69
+#, no-c-format
+msgid ""
+"Aside from those rules, you can use the IndexReader freely, especially to do "
+"native queries. Using the shared <literal>IndexReader</literal>s will make "
+"most queries more efficient."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Mapping.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Mapping.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Mapping.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1284 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Mapping.xml:6
+#, no-c-format
+msgid "Mapping Entities to the Index Structure"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:8
+#, no-c-format
+msgid ""
+"All the metadata information needed to index entities is described through "
+"some Java annotations. There is no need for xml mapping files nor a list of "
+"indexed entities. The list is discovered at startup by scanning the "
+"Hibernate mapped entities."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:14
+#, no-c-format
+msgid "Mapping an entity"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:17
+#, no-c-format
+msgid "Basic mapping"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:19
+#, no-c-format
+msgid ""
+"First, we must declare a persistent class as indexable. This is done by "
+"annotating the class with <literal>@Indexed</literal> (all entities not "
+"annotated with <literal>@Indexed</literal> will be ignored by the indexing "
+"process):"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:24
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                <emphasis role=\"bold\">@Indexed(index="
+"\"indexes/essays\")</emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:26
+#, no-c-format
+msgid ""
+"The <literal>index</literal> attribute tells Hibernate what the Lucene "
+"directory name is (usually a directory on your file system). If you wish to "
+"define a base directory for all Lucene indexes, you can use the "
+"<literal>hibernate.search.default.indexBase</literal> property in your "
+"configuration file. Each entity instance will be represented by a Lucene "
+"<classname>Document</classname> inside the given index (aka Directory)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:34
+#, no-c-format
+msgid ""
+"For each property (or attribute) of your entity, you have the ability to "
+"describe how it will be indexed. The default (i.e. no annotation) means that "
+"the property is completely ignored by the indexing process. <literal>@Field</"
+"literal> does declare a property as indexed. When indexing an element to a "
+"Lucene document you can specify how it is indexed:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:43
+#, no-c-format
+msgid ""
+"<literal>name</literal> : describe under which name, the property should be "
+"stored in the Lucene Document. The default value is the property name "
+"(following the JavaBeans convention)"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:49
+#, no-c-format
+msgid ""
+"<literal>store</literal> : describe whether or not the property is stored in "
+"the Lucene index. You can store the value <literal>Store.YES</literal> "
+"(consuming more space in the index but allowing projection, see <xref "
+"linkend=\"Hibernate_Search-Query-Projections\"/> for more information), "
+"store it in a compressed way <literal>Store.COMPRESS</literal> (this does "
+"consume more CPU), or avoid any storage <literal>Store.NO</literal> (this is "
+"the default value). When a property is stored, you can retrieve it from the "
+"Lucene Document (note that this is not related to whether the element is "
+"indexed or not)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:62
+#, no-c-format
+msgid ""
+"index: describe how the element is indexed (i.e. the process used to index "
+"the property and the type of information store). The different values are "
+"<literal>Index.NO</literal> (no indexing, i.e. cannot be found by a query), "
+"<literal>Index.TOKENIZED</literal> (use an analyzer to process the "
+"property), <literal>Index.UN_TOKENISED</literal> (no analyzer pre-"
+"processing), <literal>Index.NO_NORM</literal> (do not store the "
+"normalization data). The default value is <literal>TOKENIZED</literal>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:73
+#, no-c-format
+msgid "These attributes are part of the <literal>@Field</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:76
+#, no-c-format
+msgid ""
+"Whether or not you want to store the data depends on how you wish to use the "
+"index query result. For a regular Hibernate Search usage, storing is not "
+"necessary. However you might want to store some fields to subsequently "
+"project them (see <xref linkend=\"Hibernate_Search-Query-Projections\"/> for "
+"more information)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:82
+#, no-c-format
+msgid ""
+"Whether or not you want to tokenize a property depends on whether you wish "
+"to search the element as is, or by the words it contains. It make sense to "
+"tokenize a text field, but it does not to do it for a date field (or an id "
+"field). Note that fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:88
+#, no-c-format
+msgid ""
+"Finally, the id property of an entity is a special property used by "
+"Hibernate Search to ensure index unicity of a given entity. By design, an id "
+"has to be stored and must not be tokenized. To mark a property as index id, "
+"use the <literal>@DocumentId</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:94
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                <emphasis role=\"bold\">@DocumentId</"
+"emphasis>\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@Field(name="
+"\"Abstract\", index=Index.TOKENIZED, store=Store.YES)</emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED)</emphasis>\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:96
+#, no-c-format
+msgid ""
+"These annotations define an index with three fields: <literal>id</literal> , "
+"<literal>Abstract</literal> and <literal>text</literal> . Note that by "
+"default the field name is decapitalized, following the JavaBean "
+"specification."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:102
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify <literal>@DocumentId</literal> on the "
+"identifier property of your entity class."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:109
+#, no-c-format
+msgid "Mapping properties multiple times"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:111
+#, no-c-format
+msgid ""
+"It is sometimes needed to map a property multiple times per index, with "
+"slightly different indexing strategies. Especially, sorting a query by field "
+"requires the field to be <literal>UN_TOKENIZED</literal>. If one want to "
+"search by words in this property and still sort it, one need to index it "
+"twice, once tokenized, once untokenized. @Fields allows to achieve this goal."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:118
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index = \"Book\" )\n"
+"                                public class Book {\n"
+"                                @Fields( {\n"
+"                                @Field(index = Index.TOKENIZED),\n"
+"                                @Field(name = \"summary_forSort\", index = "
+"Index.UN_TOKENIZED, store = Store.YES)\n"
+"                                } )\n"
+"                                public String getSummary() {\n"
+"                                return summary;\n"
+"                                }\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:120
+#, no-c-format
+msgid ""
+"The field summary is indexed twice, once as <literal>summary</literal> in a "
+"tokenized way, and once as <literal>summary_forSort</literal> in an "
+"untokenized way. @Field supports 2 attributes useful when @Fields is used:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:127
+#, no-c-format
+msgid ""
+"analyzer: defines a @Analyzer annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:132
+#, no-c-format
+msgid ""
+"bridge: defines a @FieldBridge annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:137
+#, no-c-format
+msgid "See below for more information about analyzers and field bridges."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:142
+#, no-c-format
+msgid "Embedded and Associated Objects"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:144
+#, no-c-format
+msgid ""
+"Associated objects as well as embedded objects can be indexed as part of the "
+"root entity index. It is necessary if you expect to search a given entity "
+"based on properties of the associated object(s). In the following example, "
+"the use case is to return the places whose city is Atlanta (In the Lucene "
+"query parser language, it would translate into <code>address.city:Atlanta</"
+"code>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:151
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:153
+#, no-c-format
+msgid ""
+"In this example, the place fields will be indexed in the <literal>Place</"
+"literal> index. The <literal>Place</literal> index documents will also "
+"contain the fields <literal>address.id</literal>, <literal>address.street</"
+"literal>, and <literal>address.city</literal> which you will be able to "
+"query. This is enabled by the <literal>@IndexedEmbedded</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:162
+#, no-c-format
+msgid ""
+"Be careful. Because the data is denormalized in the Lucene index when using "
+"the <classname>@IndexedEmbedded</classname> technique, Hibernate Search "
+"needs to be aware of any change in the Place object and any change in the "
+"Address object to keep the index up to date. To make sure the Place Lucene "
+"document is updated when it's Address changes, you need to mark the other "
+"side of the bidirectional relationship with <classname>@ContainedIn</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:172
+#, no-c-format
+msgid ""
+"<literal>@ContainedIn</literal> is only useful on associations pointing to "
+"entities as opposed to embedded (collection of) objects."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:176
+#, no-c-format
+msgid "Let's make our example a bit more complex:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:178
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded"
+"(depth = 1, prefix = \"ownedBy_\")</emphasis>\n"
+"                                private Owner ownedBy;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner {\n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:180
+#, no-c-format
+msgid ""
+"Any <literal>@*ToOne</literal> and <literal>@Embedded</literal> attribute "
+"can be annotated with <literal>@IndexedEmbedded</literal>. The attributes of "
+"the associated class will then be added to the main entity index. In the "
+"previous example, the index will contain the following fields"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:188
+#, no-c-format
+msgid "<para>id</para>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:192
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:196
+#, no-c-format
+msgid "address.street"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:200
+#, no-c-format
+msgid "address.city"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:204
+#, no-c-format
+msgid "addess.ownedBy_name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:208
+#, no-c-format
+msgid ""
+"The default prefix is <literal>propertyName.</literal>, following the "
+"traditional object navigation convention. You can override it using the "
+"<literal>prefix</literal> attribute as it is shown on the <literal>ownedBy</"
+"literal> property."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:213
+#, no-c-format
+msgid ""
+"<literal>depth</literal> is necessary when the object graph contains a "
+"cyclic dependency of classes (not instances). For example, if "
+"<classname>Owner</classname> points to <classname>Place</classname>. "
+"Hibernate Search will stop including Indexed embedded attributes after "
+"reaching the expected depth (or the object graph boundaries are reached). A "
+"class having a self reference is an example of cyclic dependency. In our "
+"example, because <literal>depth</literal> is set to 1, any "
+"<literal>@IndexedEmbedded</literal> attribute in Owner (if any) will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:223
+#, no-c-format
+msgid ""
+"Such a feature (<literal>@IndexedEmbedded</literal>) is very useful to "
+"express queries referring to associated objects, such as:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:229
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where address city is Atlanta. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:232
+#, no-c-format
+msgid "+name:jboss +address.city:atlanta"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:236
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where owner's name contain Joe. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:239
+#, no-c-format
+msgid "+name:jboss +address.orderBy_name:joe"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:243
+#, no-c-format
+msgid ""
+"In a way it mimics the relational join operation in a more efficient way (at "
+"the cost of data duplication). Remember that, out of the box, Lucene indexes "
+"have no notion of association, the join operation is simply non-existent. It "
+"might help to keep the relational model normalized while benefiting from the "
+"full text index speed and feature richness."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:251
+#, no-c-format
+msgid ""
+"An associated object can itself be (but don't have to) <literal>@Indexed</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:255
+#, no-c-format
+msgid ""
+"When @IndexedEmbedded points to an entity, the association has to be "
+"directional and the other side has to be annotated <literal>@ContainedIn</"
+"literal> (as see in the previous example). If not, Hibernate Search has no "
+"way to update the root index when the associated entity is updated (in our "
+"example, a <literal>Place</literal> index document has to be updated when "
+"the associated <classname>Address</classname> instance is updated."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:263
+#, no-c-format
+msgid ""
+"Sometimes, the object type annotated by <classname>@IndexedEmbedded</"
+"classname> is not the object type targeted by Hibernate and Hibernate Search "
+"especially when interface are used in lieu of their implementation. You can "
+"override the object type targeted by Hibernate Search using the "
+"<command>targetElement</command> parameter."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:270
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index= Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @IndexedEmbedded(depth = 1, prefix = "
+"\"ownedBy_\", <emphasis role=\"bold\">targetElement = Owner.class</"
+"emphasis>)\n"
+"                                @Target(Owner.class)\n"
+"                                private Person ownedBy;\n"
+"                                \n"
+"                                \n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner implements Person { ... }"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:274
+#, no-c-format
+msgid "Boost factor"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:276
+#, no-c-format
+msgid ""
+"Lucene has the notion of <emphasis>boost factor</emphasis> . It's a way to "
+"give more weight to a field or to an indexed element over an other during "
+"the indexation process. You can use <literal>@Boost</literal> at the field "
+"or the class level."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:281
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                <emphasis role=\"bold\">@Boost(2)</"
+"emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                @DocumentId\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                @Field(name=\"Abstract\", index=Index."
+"TOKENIZED, store=Store.YES)\n"
+"                                <emphasis role=\"bold\">@Boost(2.5f)</"
+"emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:283
+#, no-c-format
+msgid ""
+"In our example, Essay's probability to reach the top of the search list will "
+"be multiplied by 2 and the summary field will be 2.5 more important than the "
+"test field. Note that this explanation is actually wrong, but it is simple "
+"and close enough to the reality. Please check the Lucene documentation or "
+"the excellent <citetitle>Lucene In Action </citetitle> from Otis Gospodnetic "
+"and Erik Hatcher."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:292
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:294
+#, no-c-format
+msgid ""
+"The default analyzer class used to index the elements is configurable "
+"through the <literal>hibernate.search.analyzer</literal> property. If none "
+"is defined, <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</"
+"classname> is used as the default."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:300
+#, no-c-format
+msgid ""
+"You can also define the analyzer class per entity, per property and even per "
+"@Field (useful when multiple fields are indexed from a single property)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:304
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                @Analyzer(impl = EntityAnalyzer.class)\n"
+"                                public class MyEntity {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Integer id;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                @Analyzer(impl = PropertyAnalyzer.class)\n"
+"                                private String summary;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED, analyzer = "
+"@Analyzer(impl = FieldAnalyzer.class)\n"
+"                                private String body;\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:306
+#, no-c-format
+msgid ""
+"In this example, <classname>EntityAnalyzer</classname> is used index all "
+"tokenized properties (e.g. <literal>name</literal>), except for "
+"<literal>summary</literal> and <literal>body</literal> which are indexed "
+"with <classname>PropertyAnalyzer</classname> and <classname>FieldAnalyzer</"
+"classname> respectively."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:313
+#, no-c-format
+msgid ""
+"Mixing different analyzers in the same entity is most of the time a bad "
+"practice. It makes query building more complex and results less predictable "
+"(for the novice), especially if you are using a QueryParser (which uses the "
+"same analyzer for the whole query). As a thumb rule, the same analyzer "
+"should be used for both the indexing and the query for a given field."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:326
+#, no-c-format
+msgid "Property/Field Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:328
+#, no-c-format
+msgid ""
+"In Lucene all index fields have to be represented as Strings. For this "
+"reason all entity properties annotated with <literal>@Field</literal> have "
+"to be indexed in a String form. For most of your properties, Hibernate "
+"Search does the translation job for you thanks to a built-in set of bridges. "
+"In some cases, though you need a more fine grain control over the "
+"translation process."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:336
+#, no-c-format
+msgid "Built-in bridges"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:338
+#, no-c-format
+msgid ""
+"<literal>Hibernate Search</literal> comes bundled with a set of built-in "
+"bridges between a Java property type and its full text representation."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:344
+#, no-c-format
+msgid "null"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:347
+#, no-c-format
+msgid ""
+"null elements are not indexed. Lucene does not support null elements and "
+"this does not make much sense either."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:353
+#, no-c-format
+msgid "java.lang.String"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:356
+#, no-c-format
+msgid "String are indexed as is"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:361
+#, no-c-format
+msgid ""
+"short, Short, integer, Integer, long, Long, float, Float, double, Double, "
+"BigInteger, BigDecimal"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:365
+#, no-c-format
+msgid ""
+"Numbers are converted in their String representation. Note that numbers "
+"cannot be compared by Lucene (i.e. used in ranged queries) out of the box: "
+"they have to be padded"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:368
+#, no-c-format
+msgid ""
+"Using a Range query is debatable and has drawbacks, an alternative approach "
+"is to use a Filter query which will filter the result query to the "
+"appropriate range."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:372
+#, no-c-format
+msgid "Hibernate Search will support a padding mechanism"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:378
+#, no-c-format
+msgid "java.util.Date"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:381
+#, no-c-format
+msgid ""
+"Dates are stored as yyyyMMddHHmmssSSS in GMT time (200611072203012 for Nov "
+"7th of 2006 4:03PM and 12ms EST). You shouldn't really bother with the "
+"internal format. What is important is that when using a DateRange Query, you "
+"should know that the dates have to be expressed in GMT time."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:387
+#, no-c-format
+msgid ""
+"Usually, storing the date up to the millisecond is not necessary. "
+"<literal>@DateBridge</literal> defines the appropriate resolution you are "
+"willing to store in the index ( <literal> <literal>@DateBridge"
+"(resolution=Resolution.DAY)</literal> </literal> ). The date pattern will "
+"then be truncated accordingly."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:394
+#, no-c-format
+msgid ""
+"@Entity \n"
+"                                                        @Indexed\n"
+"                                                        public class Meeting "
+"{\n"
+"                                                        @Field(index=Index."
+"UN_TOKENIZED)\n"
+"                                                        <emphasis role=\"bold"
+"\">@DateBridge(resolution=Resolution.MINUTE)</emphasis>\n"
+"                                                        private Date date;\n"
+"                                                        ..."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:397
+#, no-c-format
+msgid ""
+"A Date whose resolution is lower than <literal>MILLISECOND</literal> cannot "
+"be a <literal>@DocumentId</literal>"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:408
+#, no-c-format
+msgid "Custom Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:410
+#, no-c-format
+msgid ""
+"It can happen that the built-in bridges of Hibernate Search do not cover "
+"some of your property types, or that the String representation used is not "
+"what you expect. The following paragraphs several solutions for this problem."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:416
+#, no-c-format
+msgid "StringBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:418
+#, no-c-format
+msgid ""
+"The simplest custom solution is to give <productname>Hibernate Search </"
+"productname> an implementation of your expected <emphasis>object to String</"
+"emphasis> bridge. To do so you need to implements the <literal>org.hibernate."
+"search.bridge.StringBridge</literal> interface"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:425
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Padding Integer bridge.\n"
+"                                        * All numbers will be padded with 0 "
+"to match 5 digits\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class PaddedIntegerBridge "
+"implements <emphasis role=\"bold\">StringBridge</emphasis> {\n"
+"                                        \n"
+"                                        private int PADDING = 5;\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"String objectToString(Object object)</emphasis> {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"PADDING) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; PADDING ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:427
+#, no-c-format
+msgid ""
+"Then any property or field can use this bridge thanks to the "
+"<literal>@FieldBridge</literal> annotation"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:430
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">@FieldBridge(impl = PaddedIntegerBridge.class)</"
+"emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:432
+#, no-c-format
+msgid ""
+"Parameters can be passed to the Bridge implementation making it more "
+"flexible. The Bridge implementation implements a "
+"<classname>ParameterizedBridge</classname> interface, and the parameters are "
+"passed through the <literal>@FieldBridge</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:438
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements StringBridge, <emphasis\n"
+"                                                                                role="
+"\"bold\">ParameterizedBridge</emphasis> {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"setParameterValues(Map parameters)</emphasis> {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        <emphasis role=\"bold\">params = "
+"@Parameter(name=\"padding\", value=\"10\")</emphasis>\n"
+"                                        )\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:440
+#, no-c-format
+msgid ""
+"The <classname>ParameterizedBridge</classname> interface can be implemented "
+"by <classname>StringBridge</classname> , <classname>TwoWayStringBridge</"
+"classname> , <classname>FieldBridge</classname> implementations (see bellow)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:446
+#, no-c-format
+msgid ""
+"If you expect to use your bridge implementation on for an id property (i.e. "
+"annotated with <literal>@DocumentId</literal> ), you need to use a slightly "
+"extended version of <literal>StringBridge</literal> named "
+"<classname>TwoWayStringBridge</classname> . <literal>Hibernate Search </"
+"literal> needs to read the string representation of the identifier and "
+"generate the object out of it. There is not difference in the way the "
+"<literal>@FieldBridge</literal> annotation is used."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:455
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements TwoWayStringBridge, "
+"ParameterizedBridge {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"Object stringToObject(String stringValue)</emphasis> {\n"
+"                                        return new Integer(stringValue);\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //id property\n"
+"                                        @DocumentId\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        params = @Parameter(name=\"padding"
+"\", value=\"10\") \n"
+"                                        private Integer id;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:457
+#, no-c-format
+msgid ""
+"It is critically important for the two-way process to be idempotent (i.e. "
+"object = stringToObject( objectToString( object ) ) )."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:465
+#, no-c-format
+msgid "FieldBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:467
+#, no-c-format
+msgid ""
+"Some usecases requires more than a simple object to string translation when "
+"mapping a property to a Lucene index. To give you most of the flexibility "
+"you can also implement a bridge as a <classname>FieldBridge</classname> . "
+"This interface give you a property value and let you map it the way you want "
+"in your Lucene <classname>Document</classname> .This interface is very "
+"similar in its concept to the <productname>Hibernate</productname> "
+"<classname>UserType</classname> ."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:476
+#, no-c-format
+msgid ""
+"You can for example store a given property in two different document fields"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:479
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Store the date in 3 different "
+"field year, month, day\n"
+"                                        * to ease Range Query per year, "
+"month or day\n"
+"                                        * (e.g. get all the elements of "
+"December for the last 5 years)\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class DateSplitBridge "
+"implements FieldBridge {\n"
+"                                        private final static TimeZone GMT = "
+"TimeZone.getTimeZone(\"GMT\");\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"set(String name, Object value, Document document, Field.Store\n"
+"                                                store, Field.Index index, "
+"Float boost) {\n"
+"                                        </emphasis>\n"
+"                                        Date date = (Date) value;\n"
+"                                        Calendar cal = GregorianCalendar."
+"getInstance( GMT );\n"
+"                                        cal.setTime( date );\n"
+"                                        int year = cal.get( Calendar."
+"YEAR );\n"
+"                                        int month = cal.get( Calendar."
+"MONTH ) + 1;\n"
+"                                        int day = cal.get( Calendar."
+"DAY_OF_MONTH );\n"
+"                                        //set year\n"
+"                                        Field field = new Field( name + \"."
+"year\", String.valueOf(year), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set month and pad it if needed\n"
+"                                        field = new Field( name + \".month"
+"\", month &lt; 10 ? \"0\" : \"\" + String.valueOf(month), store, index);\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set day and pad it if needed\n"
+"                                        field = new Field( name + \".day\", "
+"day &lt; 10 ? \"0\" : \"\" + String.valueOf(day), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        <emphasis role=\"bold\">@FieldBridge"
+"(impl = DateSplitBridge.class)</emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:484
+#, no-c-format
+msgid "@ClassBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:486
+#, no-c-format
+msgid ""
+"It is sometimes useful to combine more than one property of a given entity "
+"and index this combination in a specific way into the Lucene index. The "
+"<classname>@ClassBridge</classname> and <classname>@ClassBridges</classname> "
+"annotations can be defined at the class level (as opposed to the property "
+"level). In this case the custom field bridge implementation receives the "
+"entity instance as the value parameter instead of a particular property."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:494
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                        @Indexed\n"
+"                                        <emphasis role=\"bold"
+"\">@ClassBridge</emphasis>(name=\"branchnetwork\",\n"
+"                                        index=Index.TOKENIZED,\n"
+"                                        store=Store.YES,\n"
+"                                        impl = <emphasis role=\"bold"
+"\">CatFieldsClassBridge.class</emphasis>,\n"
+"                                        params = @Parameter( name=\"sepChar"
+"\", value=\" \" ) )\n"
+"                                        public class Department {\n"
+"                                        private int id;\n"
+"                                        private String network;\n"
+"                                        private String branchHead;\n"
+"                                        private String branch;\n"
+"                                        private Integer maxEmployees;\n"
+"                                        ...\n"
+"                                        }\n"
+"                                        \n"
+"                                        public class CatFieldsClassBridge "
+"implements FieldBridge, ParameterizedBridge {\n"
+"                                        \n"
+"                                        private String sepChar;\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        this.sepChar = (String) parameters."
+"get( \"sepChar\" );\n"
+"                                        }\n"
+"                                        \n"
+"                                        public void set(String name, \n"
+"                                        Object value, //the department "
+"instance (entity) in this case\n"
+"                                        Document document, //the Lucene "
+"document \n"
+"                                        Field.Store store, Field.Index "
+"index, Float boost) {\n"
+"                                        // In this particular class the name "
+"of the new field was passed\n"
+"                                        // from the name field of the "
+"ClassBridge Annotation. This is not\n"
+"                                        // a requirement. It just works that "
+"way in this instance. The\n"
+"                                        // actual name could be supplied by "
+"hard coding it below.\n"
+"                                        Department dep = (Department) "
+"value;\n"
+"                                        String fieldValue1 = dep.getBranch"
+"();\n"
+"                                        if ( fieldValue1 == null ) {\n"
+"                                        fieldValue1 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue2 = dep.getNetwork"
+"();\n"
+"                                        if ( fieldValue2 == null ) {\n"
+"                                        fieldValue2 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue = fieldValue1 + "
+"sepChar + fieldValue2;\n"
+"                                        Field field = new Field( name, "
+"fieldValue, store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:496
+#, no-c-format
+msgid ""
+"In this example, the particular <classname>CatFieldsClassBridge</classname> "
+"is applied to the <literal>department</literal> instance, the field bridge "
+"then concatenate both branch and network and index the concatenation."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Optimize.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Optimize.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Optimize.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,210 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Optimize.xml:6
+#, no-c-format
+msgid "Index Optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:8
+#, no-c-format
+msgid ""
+"From time to time, the Lucene index needs to be optimized. The process is "
+"essentially a defragmentation: until the optimization occurs, deleted "
+"documents are just marked as such, no physical deletion is applied, the "
+"optimization can also adjust the number of files in the Lucene Directory."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:16
+#, no-c-format
+msgid ""
+"The optimization speeds up searches but in no way speeds up indexation "
+"(update). During an optimization, searches can be performed (but will most "
+"likely be slowed down), and all index updates will be stopped. Prefer "
+"optimizing:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:25
+#, no-c-format
+msgid "on an idle system or when the searches are less frequent"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:29
+#, no-c-format
+msgid ""
+"after a lot of index modifications (doing so before will not speed up the "
+"indexation process)"
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:35
+#, no-c-format
+msgid "Automatic optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:37
+#, no-c-format
+msgid "Hibernate Search can optimize automatically an index after:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:41
+#, no-c-format
+msgid "a certain amount of operations have been applied (insertion, deletion)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:46
+#, no-c-format
+msgid "or a certain amount of transactions have been applied"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:50
+#, no-c-format
+msgid "The configuration can be global or defined at the index level:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:53
+#, no-c-format
+msgid ""
+"hibernate.search.default.optimizer.operation_limit.max = 1000\n"
+"                        hibernate.search.default.optimizer.transaction_limit."
+"max = 100\n"
+"                        \n"
+"                        hibernate.search.Animal.optimizer.transaction_limit."
+"max = 50"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:55
+#, no-c-format
+msgid ""
+"An optimization will be triggered to the <literal>Animal</literal> index as "
+"soon as either:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:60
+#, no-c-format
+msgid "the number of addition and deletion reaches 1000"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:64
+#, no-c-format
+msgid ""
+"the number of transactions reaches 50 (<command>hibernate.search.Animal."
+"optimizer.transaction_limit.max</command> having priority over "
+"<command>hibernate.search.default.optimizer.transaction_limit.max</command>)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:71
+#, no-c-format
+msgid ""
+"If none of these parameters are defined, not optimization is processed "
+"automatically."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:76
+#, no-c-format
+msgid "Manual optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:78
+#, no-c-format
+msgid ""
+"You can programmatically optimize (defragment) a Lucene index from Hibernate "
+"Search through the <classname>SearchFactory</classname>"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:81
+#, no-c-format
+msgid ""
+"searchFactory.optimize(Order.class);\n"
+"                        \n"
+"                        searchFactory.optimize();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:83
+#, no-c-format
+msgid ""
+"The first example re-index the Lucene index holding <classname>Order</"
+"classname>s, the second, optimize all indexes."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:86
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> can be accessed from a "
+"<classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:89
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:91
+#, no-c-format
+msgid ""
+"Note that <literal>searchFactory.optimize()</literal> has no effect on a JMS "
+"backend. You must apply the optimize operation on the Master node."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:97
+#, no-c-format
+msgid "Adjusting optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:99
+#, no-c-format
+msgid ""
+"Apache Lucene has a few parameters to influence how optimization is "
+"performed. Hibernate Search expose those parameters."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:102
+#, no-c-format
+msgid ""
+"Further index optimization parameters include <literal>hibernate.search."
+"[default|&lt;indexname&gt;].merge_factor</literal>, <literal>hibernate."
+"search.[default|&lt;indexname&gt;].max_merge_docs</literal> and "
+"<literal>hibernate.search.[default|&lt;indexname&gt;].max_buffered_docs</"
+"literal> - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Preface.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Preface.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Preface.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,20 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Query.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Query.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Query.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1058 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Query.xml:6
+#, no-c-format
+msgid "Query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:8
+#, no-c-format
+msgid ""
+"The second most important capability of Hibernate Search is the ability to "
+"execute a Lucene query and retrieve entities managed by an Hibernate "
+"session, providing the power of Lucene without living the Hibernate "
+"paradigm, and giving another dimension to the Hibernate classic search "
+"mechanisms (HQL, Criteria query, native SQL query)."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:14
+#, no-c-format
+msgid ""
+"To access the <productname>Hibernate Search</productname> querying "
+"facilities, you have to use an Hibernate <classname>FullTextSession</"
+"classname> . A Search Session wraps a regular <classname>org.hibernate."
+"Session</classname> to provide query and indexing capabilities."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:20
+#, no-c-format
+msgid ""
+"Session session = sessionFactory.openSession();\n"
+"                ...\n"
+"                FullTextSession fullTextSession = Search."
+"createFullTextSession(session);"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:22
+#, no-c-format
+msgid "The search facility is built on native Lucene queries."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:24
+#, no-c-format
+msgid ""
+"org.apache.lucene.queryParser.QueryParser parser = new QueryParser(\"title"
+"\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );\n"
+"                </emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.list(); //return a list of "
+"managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:26
+#, no-c-format
+msgid ""
+"The Hibernate query built on top of the Lucene query is a regular "
+"<literal>org.hibernate.Query</literal> , you are in the same paradigm as the "
+"other Hibernate query facilities (HQL, Native or Criteria). The regular "
+"<literal>list()</literal> , <literal>uniqueResult()</literal> , "
+"<literal>iterate()</literal> and <literal>scroll()</literal> can be used."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:33
+#, no-c-format
+msgid ""
+"For people using Java Persistence (aka EJB 3.0 Persistence) APIs of "
+"Hibernate, the same extensions exist:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:36
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                \n"
+"                FullTextEntityManager fullTextEntityManager = \n"
+"                org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                \n"
+"                ...\n"
+"                org.apache.lucene.queryParser.QueryParser parser = new "
+"QueryParser(\"title\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">javax.persistence.Query "
+"fullTextQuery = fullTextEntityManager.createFullTextQuery( luceneQuery );</"
+"emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.getResultList(); //return a list "
+"of managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:38
+#, no-c-format
+msgid ""
+"The following examples show the Hibernate APIs but the same example can be "
+"easily rewritten with the Java Persistence API by just adjusting the way the "
+"FullTextQuery is retrieved."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:43
+#, no-c-format
+msgid "Building queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:45
+#, no-c-format
+msgid ""
+"Hibernate Search queries are built on top of Lucene queries. It gives you a "
+"total freedom on the kind of Lucene queries you are willing to execute. "
+"However, once built, Hibernate Search abstract the query processing from "
+"your application using org.hibernate.Query as your primary query "
+"manipulation API."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:52
+#, no-c-format
+msgid "Building a Lucene query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:54
+#, no-c-format
+msgid ""
+"This subject is generally speaking out of the scope of this documentation. "
+"Please refer to the Lucene documentation or Lucene In Action."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:60
+#, no-c-format
+msgid "Building a Hibernate Search query"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:63
+#, no-c-format
+msgid "Generality"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:65
+#, no-c-format
+msgid ""
+"Once the Lucene query is built, it needs to be wrapped into an Hibernate "
+"Query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession( session );\n"
+"                                        org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:70
+#, no-c-format
+msgid ""
+"If not specified otherwise, the query will be executed against all indexed "
+"entities, potentially returning all types of indexed classes. It is advised, "
+"from a performance point of view, to restrict the returned types:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:75
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        //or\n"
+"                                        fullTextQuery = fullTextSession."
+"createFullTextQuery( luceneQuery, Item.class, Actor.class );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:77
+#, no-c-format
+msgid ""
+"The first example returns only matching customers, the second returns "
+"matching actors and items."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:82
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:84
+#, no-c-format
+msgid ""
+"It is recommended to restrict the number of returned objects per query. It "
+"is a very common use case as well, the user usually navigate from one page "
+"to an other. The way to define pagination is exactly the way you would "
+"define pagination in a plain HQL or Criteria query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:90
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        fullTextQuery.setFirstResult(15); //"
+"start from the 15th element\n"
+"                                        fullTextQuery.setMaxResults(10); //"
+"return 10 elements"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:93
+#, no-c-format
+msgid ""
+"It is still possible to get the total number of matching elements regardless "
+"of the pagination. See <command>getResultSize()</command> below"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:100
+#, no-c-format
+msgid "Sorting"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:102
+#, no-c-format
+msgid ""
+"Apache Lucene provides a very flexible and powerful way to sort results. "
+"While the default sorting (by relevance) is appropriate most of the time, it "
+"can interesting to sort by one or several properties."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:107
+#, no-c-format
+msgid ""
+"Inject the Lucene Sort object to apply a Lucene sorting strategy to an "
+"Hibernate Search."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:110
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery( query, "
+"Book.class );\n"
+"                                        org.apache.lucene.search.Sort sort = "
+"new Sort(new SortField(\"title\"));\n"
+"                                        <emphasis role=\"bold\">query.setSort"
+"(sort);</emphasis>\n"
+"                                        List results = query.list();"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:112
+#, no-c-format
+msgid ""
+"One can notice the <classname>FullTextQuery</classname> interface which is a "
+"sub interface of <classname>org.hibernate.Query</classname>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:116
+#, no-c-format
+msgid "Fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:120
+#, no-c-format
+msgid "Fetching strategy"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:122
+#, no-c-format
+msgid ""
+"When you restrict the return types to one class, Hibernate Search loads the "
+"objects using a single query. It also respects the static fetching strategy "
+"defined in your domain model."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:126
+#, no-c-format
+msgid ""
+"It is often useful, however, to refine the fetching strategy for a specific "
+"use case."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:129
+#, no-c-format
+msgid ""
+"Criteria criteria = s.createCriteria( Book.class ).setFetchMode( \"authors"
+"\", FetchMode.JOIN );\n"
+"                                        s.createFullTextQuery( luceneQuery )."
+"setCriteriaQuery( criteria );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:131
+#, no-c-format
+msgid ""
+"In this example, the query will return all Books matching the luceneQuery. "
+"The authors collection will be loaded from the same query using an SQL outer "
+"join."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:135
+#, no-c-format
+msgid ""
+"When defining a criteria query, it is not needed to restrict the entity "
+"types returned while creating the Hibernate Search query from the full text "
+"session: the type is guessed from the criteria query itself. Only fetch mode "
+"can be adjusted, refrain from applying any other restriction."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:141
+#, no-c-format
+msgid ""
+"One cannot use <command>setCriteriaQuery</command> if more than one entity "
+"type is expected to be returned."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:146
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:148
+#, no-c-format
+msgid ""
+"For some use cases, returning the domain object (graph) is overkill. Only a "
+"small subset of the properties is necessary. Hibernate Search allows you to "
+"return a subset of properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:152
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( \"id\", \"summary\", \"body\", \"mainAuthor.name\" )</"
+"emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        Integer id = firstResult[0];\n"
+"                                        String summary = firstResult[1];\n"
+"                                        String body = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:154
+#, no-c-format
+msgid ""
+"Hibernate Search extracts the properties from the Lucene index and convert "
+"them back to their object representation, returning a list of "
+"<classname>Object[]</classname>. Projections avoid a potential database "
+"round trip (useful if the query response time is critical), but has some "
+"constraints:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:162
+#, no-c-format
+msgid ""
+"the properties projected must be stored in the index (<literal>@Field"
+"(store=Store.YES)</literal>), which increase the index size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:168
+#, no-c-format
+msgid ""
+"the properties projected must use a <literal>FieldBridge</literal> "
+"implementing <classname>org.hibernate.search.bridge.TwoWayFieldBridge</"
+"classname> or <literal>org.hibernate.search.bridge.TwoWayStringBridge</"
+"literal>, the latter being the simpler version. All Hibernate Search built-"
+"in types are two-way."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:178
+#, no-c-format
+msgid ""
+"Projection is useful for another kind of usecases. Lucene provides some "
+"metadata information to the user about the results. By using some special "
+"placeholders, the projection mechanism can retrieve them:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:183
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( FullTextQuery.SCORE, FullTextQuery.BOOST, FullTextQuery."
+"THIS, \"mainAuthor.name\" )</emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        float score = firstResult[0];\n"
+"                                        float boost = firstResult[1];\n"
+"                                        Book book = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:185
+#, no-c-format
+msgid ""
+"You can mix and match regular fields and special placeholders. Here is the "
+"list of available placeholders:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:190
+#, no-c-format
+msgid ""
+"FullTextQuery.THIS: returns the initialized and managed entity (as a non "
+"projected query would have done)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:195
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT: returns the Lucene Document related to the object "
+"projected"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:200
+#, no-c-format
+msgid ""
+"FullTextQuery.SCORE: returns the document score in the query. The score is "
+"guaranteed to be between 0 and 1 but the highest score is not necessarily "
+"equals to 1. Scores are handy to compare one result against an other for a "
+"given query but are useless when comparing the result of different queries."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:208
+#, no-c-format
+msgid "FullTextQuery.BOOST: the boost value of the Lucene Document"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:213
+#, no-c-format
+msgid "FullTextQuery.ID: the id property value of the projected object"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:218
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT_ID: the Lucene document id. Careful, Lucene document "
+"id can change overtime between two different IndexReader opening (this "
+"feature is experimental)"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:228
+#, no-c-format
+msgid "Retrieving the results"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:230
+#, no-c-format
+msgid ""
+"Once the Hibernate Search query is built, executing it is in no way "
+"different than executing a HQL or Criteria query. The same paradigm and "
+"object semantic apply. All the common operations are available: <command>list"
+"()</command>, <command>uniqueResult()</command>, <command>iterate()</"
+"command>, <command>scroll()</command>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:238
+#, no-c-format
+msgid "Performance considerations"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:240
+#, no-c-format
+msgid ""
+"If you expect a reasonable number of results (for example using pagination) "
+"and expect to work on all of them, <command>list()</command> or "
+"<command>uniqueResult()</command> are recommended. <command>list()</command> "
+"work best if the entity <literal>batch-size</literal> is set up properly. "
+"Note that Hibernate Search has to process all Lucene Hits elements (within "
+"the pagination) when using <command>list()</command> , <command>uniqueResult"
+"()</command> and <command>iterate()</command>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:251
+#, no-c-format
+msgid ""
+"If you wish to minimize Lucene document loading, <command>scroll()</command> "
+"is more appropriate. Don't forget to close the <classname>ScrollableResults</"
+"classname> object when you're done, since it keeps Lucene resources. If you "
+"expect to use <command>scroll</command> but wish to load objects in batch, "
+"you can use <command>query.setFetchSize()</command>: When an object is "
+"accessed, and if not already loaded, Hibernate Search will load the next "
+"<literal>fetchSize</literal> objects in one pass."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:260
+#, no-c-format
+msgid "Pagination is a preferred method over scrolling though."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:264
+#, no-c-format
+msgid "Result size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:266
+#, no-c-format
+msgid "It is sometime useful to know the total number of matching documents:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:271
+#, no-c-format
+msgid "for the Google-like feature 1-10 of about 888,000,000"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:275
+#, no-c-format
+msgid "to implement a fast pagination navigation"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:279
+#, no-c-format
+msgid ""
+"to implement a multi step search engine (adding approximation if the "
+"restricted query return no or not enough results)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:284
+#, no-c-format
+msgid "But it would be costly to retrieve all the matching documents."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:287
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to retrieve the total number of matching "
+"documents regardless of the pagination parameters. Even more interesting, "
+"you can retrieve the number of matching elements without triggering a single "
+"object load."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:292
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the number of matching books without "
+"loading a single one\n"
+"                                \n"
+"                                org.hibernate.search.FullTextQuery query = s."
+"createFullTextQuery( luceneQuery, Book.class );\n"
+"                                query.setMaxResult(10);\n"
+"                                List results = query.list();\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the total number of matching books "
+"regardless of pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:295
+#, no-c-format
+msgid ""
+"Like Google, the number of results is approximate if the index is not fully "
+"up-to-date with the database (asynchronous cluster for example)."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:302
+#, no-c-format
+msgid "ResultTransformer"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:304
+#, no-c-format
+msgid ""
+"Especially when using projection, the data structure returned by a query (an "
+"object array in this case), is not always matching the application needs. It "
+"is possible to apply a <classname>ResultTransformer</classname> operation "
+"post query to match the targeted data structure:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:310
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                query.setProjection( \"title\", \"mainAuthor."
+"name\" );\n"
+"                                \n"
+"                                <emphasis role=\"bold\">query."
+"setResultTransformer( \n"
+"                                        new "
+"StaticAliasToBeanResultTransformer( BookView.class, \"title\", \"author"
+"\" ) \n"
+"                                        );</emphasis>\n"
+"                                List&lt;BookView&gt; results = (List&lt;"
+"BookView&gt;) query.list();\n"
+"                                for(BookView view : results) {\n"
+"                                log.info( \"Book: \" + view.getTitle() + \", "
+"\" + view.getAuthor() );\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:312
+#, no-c-format
+msgid ""
+"Examples of <classname>ResultTransformer</classname> implementations can be "
+"found in the Hibernate Core codebase."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:318
+#, no-c-format
+msgid "Filters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:320
+#, no-c-format
+msgid ""
+"Apache Lucene has a powerful feature that allows to filters results from a "
+"query according to a custom filtering process. This is a very powerful way "
+"to apply some data restrictions after a query, especially since filters can "
+"be cached and reused. Some interesting usecases are:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:328
+#, no-c-format
+msgid "security"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:332
+#, no-c-format
+msgid "temporal data (e.g.. view only last month's data)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:336
+#, no-c-format
+msgid "population filter (e.g. search limited to a given category)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:341
+#, no-c-format
+msgid "and many more"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:345
+#, no-c-format
+msgid ""
+"Hibernate Search pushes the concept further by introducing the notion of "
+"parameterizable named filters which are transparently cached. For people "
+"familiar with the notion of Hibernate Core filters, the API is very similar."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:350
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"bestDriver\");\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")."
+"setParameter( \"login\", \"andre\" );\n"
+"                        fullTextQuery.list(); //returns only best drivers "
+"where andre has credentials"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:352
+#, no-c-format
+msgid ""
+"In this example we enabled 2 filters on top of this query. You can enable "
+"(or disable) as many filters as you want."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:355
+#, no-c-format
+msgid ""
+"Declaring filters is done through the <classname>@FullTextFilterDef</"
+"classname> annotation. This annotation can be on any <literal>@Indexed</"
+"literal> entity regardless of the filter operation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:360
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDefs( {\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"bestDriver\", impl = BestDriversFilter.class, cache=false)</emphasis>, //"
+"actual Filter implementation\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"security\", impl = SecurityFilterFactory.class)</emphasis> //Filter "
+"factory with parameters\n"
+"                        })\n"
+"                        public class Driver { ... }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:362
+#, no-c-format
+msgid "Each named filter points to an actual filter implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:364
+#, no-c-format
+msgid ""
+"public class BestDriversFilter extends <emphasis\n"
+"                                                                                role="
+"\"bold\">org.apache.lucene.search.Filter</emphasis> {\n"
+"                        \n"
+"                        public BitSet bits(IndexReader reader) throws "
+"IOException {\n"
+"                        BitSet bitSet = new BitSet( reader.maxDoc() );\n"
+"                        TermDocs termDocs = reader.termDocs( new Term(\"score"
+"\", \"5\") );\n"
+"                        while ( termDocs.next() ) {\n"
+"                        bitSet.set( termDocs.doc() );\n"
+"                        }\n"
+"                        return bitSet;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:366
+#, no-c-format
+msgid ""
+"<classname>BestDriversFilter</classname> is an example of a simple Lucene "
+"filter that will filter all results to only return drivers whose score is 5. "
+"The filters must have a no-arg constructor when referenced in a "
+"<literal>FulltextFilterDef.impl</literal>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:371
+#, no-c-format
+msgid ""
+"The <literal>cache</literal> flag, defaulted to <literal>true</literal>, "
+"tells Hibernate Search to search the filter in its internal cache and reuses "
+"it if found."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:375
+#, no-c-format
+msgid ""
+"Note that, usually, filter using the <classname>IndexReader</classname> are "
+"wrapped in a Lucene <classname>CachingWrapperFilter</classname> to benefit "
+"from some caching speed improvement. If your Filter creation requires "
+"additional steps or if the filter you are willing to use does not have a no-"
+"arg constructor, you can use the factory pattern:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:382
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDef(name = \"bestDriver\", impl = "
+"BestDriversFilterFactory.class) //Filter factory\n"
+"                        public class Driver { ... }\n"
+"                        \n"
+"                        public class BestDriversFilterFactory {\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Factory</emphasis>\n"
+"                        public Filter getFilter() {\n"
+"                        //some additional steps to cache the filter results "
+"per IndexReader\n"
+"                        Filter bestDriversFilter = new BestDriversFilter();\n"
+"                        return new CachingWrapperFilter(bestDriversFilter);\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:384
+#, no-c-format
+msgid ""
+"Hibernate Search will look for a <literal>@Factory</literal> annotated "
+"method and use it to build the filter instance. The factory must have a no-"
+"arg constructor. For people familiar with JBoss Seam, this is similar to the "
+"component factory pattern, but the annotation is different!"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:390
+#, no-c-format
+msgid ""
+"Named filters comes in handy where the filters have parameters. For example "
+"a security filter needs to know which credentials you are willing to filter "
+"by:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:394
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")"
+"<emphasis role=\"bold\">.setParameter( \"level\", 5 )</emphasis>;"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:396
+#, no-c-format
+msgid ""
+"Each parameter name should have an associated setter on either the filter or "
+"filter factory of the targeted named filter definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:399
+#, no-c-format
+msgid ""
+"public class SecurityFilterFactory {\n"
+"                        private Integer level;\n"
+"                        \n"
+"                        /**\n"
+"                        * injected parameter\n"
+"                        */\n"
+"                        <emphasis role=\"bold\">public void setLevel(Integer "
+"level)</emphasis> {\n"
+"                        this.level = level;\n"
+"                        }\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Key\n"
+"                                public FilterKey getKey()</emphasis> {\n"
+"                        StandardFilterKey key = new StandardFilterKey();\n"
+"                        key.addParameter( level );\n"
+"                        return key;\n"
+"                        }\n"
+"                        \n"
+"                        @Factory\n"
+"                        public Filter getFilter() {\n"
+"                        Query query = new TermQuery( new Term(\"level\", "
+"level.toString() ) );\n"
+"                        return new CachingWrapperFilter( new "
+"QueryWrapperFilter(query) );\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:401
+#, no-c-format
+msgid ""
+"Note the method annotated <classname>@Key</classname> and returning a "
+"<classname>FilterKey</classname> object. The returned object has a special "
+"contract: the key object must implement equals / hashcode so that 2 keys are "
+"equals if and only if the given Filter types are the same and the set of "
+"parameters are the same. In other words, 2 filter keys are equal if and only "
+"if the filters from which the keys are generated can be interchanged. The "
+"key object is used as a key in the cache mechanism."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:410
+#, no-c-format
+msgid "<classname>@Key</classname> methods are needed only if:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:414
+#, no-c-format
+msgid "you enabled the filter caching system (enabled by default)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:419
+#, no-c-format
+msgid "your filter has parameters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:423
+#, no-c-format
+msgid ""
+"In most cases, using the <literal>StandardFilterKey</literal> implementation "
+"will be good enough. It delegates the equals/hashcode implementation to each "
+"of the parameters equals and hashcode methods."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:428
+#, no-c-format
+msgid ""
+"Why should filters be cached? There are two area where filter caching shines:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:433
+#, no-c-format
+msgid ""
+"the system does not update the targeted entity index often (in other words, "
+"the IndexReader is reused a lot)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:438
+#, no-c-format
+msgid ""
+"the Filter BitSet is expensive to compute (compared to the time spent to "
+"execute the query)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:443
+#, no-c-format
+msgid ""
+"Cache is enabled by default and use the notion of SoftReferences to dispose "
+"memory when needed. To adjust the size of the hard reference cache, use "
+"<literal>hibernate.search.filter.cache_strategy.size</literal> (defaults to "
+"128). Don't forget to use a <classname>CachingWrapperFilter</classname> when "
+"the filter is cacheable and the Filter's bits methods makes use of "
+"IndexReader."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:450
+#, no-c-format
+msgid ""
+"For advance use of filter caching, you can implement your own "
+"<classname>FilterCachingStrategy</classname>. The classname is defined by "
+"<literal>hibernate.search.filter.cache_strategy</literal>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:456
+#, no-c-format
+msgid "Optimizing the query process"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:458
+#, no-c-format
+msgid "Query performance depends on several criteria:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:462
+#, no-c-format
+msgid "the Lucene query itself: read the literature on this subject"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:467
+#, no-c-format
+msgid ""
+"the number of object loaded: use pagination (always ;-) ) or index "
+"projection (if needed)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:472
+#, no-c-format
+msgid ""
+"the way Hibernate Search interacts with the Lucene readers: defines the "
+"appropriate <xref linkend=\"Hibernate_Search-Architecture-Reader_Strategy\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:480
+#, no-c-format
+msgid "Native Lucene Queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:482
+#, no-c-format
+msgid ""
+"If you wish to use some specific features of Lucene, you can always run "
+"Lucene specific queries. Check <xref linkend=\"Hibernate_Search-Lucene_Native"
+"\"/> for more informations."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Revision_History.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Revision_History.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/ja-JP/Revision_History.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,33 @@
+# Language ja-JP translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Danielle</firstname> <surname>Coulson</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Content reformat"
+msgstr ""

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Architecture.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Architecture.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Architecture.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Author_Group.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Author_Group.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Author_Group.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Batch_Index.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Batch_Index.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Batch_Index.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Book_Info.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Book_Info.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Book_Info.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -17,7 +17,7 @@
 #. Tag: title
 #: Book_Info.xml:6
 #, no-c-format
-msgid "Hibernate Search Reference Guide CP03 FP01"
+msgid "Hibernate Search Reference Guide CP04 FP01"
 msgstr ""
 
 #. Tag: subtitle
@@ -30,7 +30,7 @@
 #: Book_Info.xml:8
 #, no-c-format
 msgid ""
-"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 3 "
+"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 4 "
 "Feature Pack 1"
 msgstr ""
 
@@ -39,7 +39,7 @@
 #, no-c-format
 msgid ""
 "This book is a Reference Guide to Hibernate Search for JBoss Enterprise "
-"Application Platform 4.3.0 CP03 FP01"
+"Application Platform 4.3.0 CP04 FP01"
 msgstr ""
 
 #. Tag: phrase

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Configuration.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Configuration.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Configuration.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Feedback.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Feedback.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Feedback.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Getting_Started.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Getting_Started.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Getting_Started.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Introduction.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Introduction.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Introduction.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Lucene_Native.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Lucene_Native.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Lucene_Native.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Mapping.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Mapping.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Mapping.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Optimize.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Optimize.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Optimize.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Preface.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Preface.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Preface.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Query.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Query.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Query.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Revision_History.pot
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Revision_History.pot	2009-06-18 00:26:59 UTC (rev 90362)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pot/Revision_History.pot	2009-06-18 00:52:53 UTC (rev 90363)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-04 22:27+0000\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Architecture.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Architecture.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Architecture.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,367 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture.xml:6
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:9
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:11
+#, no-c-format
+msgid ""
+"Hibernate Search consists of an indexing and an index search engine. Both "
+"are backed by Apache Lucene."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:14
+#, no-c-format
+msgid ""
+"When an entity is inserted, updated or removed in/from the database, "
+"Hibernate Search keeps track of this event (through the Hibernate event "
+"system) and schedules an index update. All the index updates are handled for "
+"you without you having to use the Apache Lucene APIs (see <xref linkend="
+"\"Hibernate_Search-Configuration-Event\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:19
+#, no-c-format
+msgid ""
+"To interact with Apache Lucene indexes, Hibernate Search has the notion of "
+"<classname>DirectoryProvider</classname>s. A directory provider will manage "
+"a given Lucene <classname>Directory</classname> type. You can configure "
+"directory providers to adjust the directory target (see <xref linkend="
+"\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:24
+#, no-c-format
+msgid ""
+"Hibernate Search can also use the Lucene index to search an entity and "
+"return a list of managed entities saving you the tedious object to Lucene "
+"document mapping. The same persistence context is shared between Hibernate "
+"and Hibernate Search; as a matter of fact, the Search Session is built on "
+"top of the Hibernate Session. The application code use the unified "
+"<classname>org.hibernate.Query</classname> or <classname>javax.persistence."
+"Query</classname> APIs exactly the way a HQL, JPA-QL or native queries would "
+"do."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:33
+#, no-c-format
+msgid ""
+"To be more efficient, Hibernate Search batches the write interactions with "
+"the Lucene index. There is currently two types of batching depending on the "
+"expected scope."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:37
+#, no-c-format
+msgid ""
+"Outside a transaction, the index update operation is executed right after "
+"the actual database operation. This scope is really a no scoping setup and "
+"no batching is performed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:41
+#, no-c-format
+msgid ""
+"It is however recommended, for both your database and Hibernate Search, to "
+"execute your operation in a transaction be it JDBC or JTA. When in a "
+"transaction, the index update operation is scheduled for the transaction "
+"commit and discarded in case of transaction rollback. The batching scope is "
+"the transaction. There are two immediate benefits:"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:50
+#, no-c-format
+msgid ""
+"Performance: Lucene indexing works better when operation are executed in "
+"batch."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:55
+#, no-c-format
+msgid ""
+"ACIDity: The work executed has the same scoping as the one executed by the "
+"database transaction and is executed if and only if the transaction is "
+"committed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:60
+#, no-c-format
+msgid ""
+"Disclaimer, the work in not ACID in the strict sense of it, but ACID "
+"behavior is rarely useful for full text search indexes since they can be "
+"rebuilt from the source at any time."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:67
+#, no-c-format
+msgid ""
+"You can think of those two scopes (no scope vs transactional) as the "
+"equivalent of the (infamous) auto-commit vs transactional behavior. From a "
+"performance perspective, the <emphasis>in transaction</emphasis> mode is "
+"recommended. The scoping choice is made transparently: Hibernate Search "
+"detects the presence of a transaction and adjust the scoping."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:74
+#, no-c-format
+msgid ""
+"Hibernate Search works perfectly fine in the Hibernate / EntityManager long "
+"conversation pattern aka. atomic conversation."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:80
+#, no-c-format
+msgid ""
+"Depending on user demand, additional scoping will be considered, the "
+"pluggability mechanism being already in place."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:87
+#, no-c-format
+msgid "Back End"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:89
+#, no-c-format
+msgid ""
+"Hibernate Search offers the ability to let the scoped work being processed "
+"by different back ends. Two back ends are provided out of the box for two "
+"different scenarios."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:96
+#, no-c-format
+msgid ""
+"Hibernate Search is an extensible architecture. While not yet part of the "
+"public API, plugging a third party back end is possible. Feel free to drop "
+"ideas to <literal>hibernate-dev at lists.jboss.org</literal>."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:102
+#, no-c-format
+msgid "Lucene"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:104
+#, no-c-format
+msgid ""
+"In this mode, all index update operations applied on a given node (JVM) will "
+"be executed to the Lucene directories (through the directory providers) by "
+"the same node. This mode is typically used in non clustered environment or "
+"in clustered environments where the directory store is shared."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:120
+#, no-c-format
+msgid ""
+"This mode targets non clustered applications, or clustered applications "
+"where the Directory is taking care of the locking strategy."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:126
+#, no-c-format
+msgid ""
+"The main advantage is simplicity and immediate visibility of the changes in "
+"Lucene queries (a requirement is some applications)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:133
+#, no-c-format
+msgid "<title>JMS</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:135
+#, no-c-format
+msgid ""
+"All index update operations applied on a given node are sent to a JMS queue. "
+"A unique reader will then process the queue and update the master Lucene "
+"index. The master index is then replicated on a regular basis to the slave "
+"copies. This is known as the master / slaves pattern. The master is the sole "
+"responsible for updating the Lucene index. The slaves can accept read as "
+"well as write operations. However, they only process the read operation on "
+"their local index copy and delegate the update operations to the master."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:153
+#, no-c-format
+msgid ""
+"This mode targets clustered environments where throughput is critical, and "
+"index update delays are affordable. Reliability is ensured by the JMS "
+"provider and by having the slaves working on a local copy of the index."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:161
+#, no-c-format
+msgid "Work Execution"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:163
+#, no-c-format
+msgid ""
+"The indexing work (done by the back end) can be executed synchronously with "
+"the transaction commit (or update operation if out of transaction), or "
+"asynchronously."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:168
+#, no-c-format
+msgid "Synchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:170
+#, no-c-format
+msgid ""
+"This is the safe mode where the back end work is executed in concert with "
+"the transaction commit. Under highly concurrent environment, this can lead "
+"to throughput limitations (due to the Apache Lucene lock mechanism) and it "
+"can increase the system response time if the backend is significantly slower "
+"than the transactional process and if a lot of IO operations are involved."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:179
+#, no-c-format
+msgid "Asynchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:181
+#, no-c-format
+msgid ""
+"This mode delegates the work done by the back end to a different thread. "
+"That way, throughput and response time are (to a certain extend) "
+"decorrelated from the back end performance. The drawback is that a small "
+"delay appears between the transaction commit and the index update and a "
+"small overhead is introduced to deal with thread management."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:187
+#, no-c-format
+msgid ""
+"It is recommended to use synchronous execution first and evaluate "
+"asynchronous execution if performance problems occur and after having set up "
+"a proper benchmark (i.e. not a lonely cowboy hitting the system in a "
+"completely unrealistic way)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:195
+#, no-c-format
+msgid "Reader Strategy"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:197
+#, no-c-format
+msgid ""
+"When executing a query, Hibernate Search interacts with the Apache Lucene "
+"indexes through a reader strategy. Choosing a reader strategy will depend on "
+"the profile of the application (frequent updates, read mostly, asynchronous "
+"index update etc). See also"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:204
+#, no-c-format
+msgid "Shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:206
+#, no-c-format
+msgid ""
+"With this strategy, Hibernate Search will share the same IndexReader, for a "
+"given Lucene index, across multiple queries and threads provided that the "
+"IndexReader is still up-to-date. If the IndexReader is not up-to-date, a new "
+"one is opened and provided. Generally speaking, this strategy provides much "
+"better performances than the <literal>not-shared</literal> strategy. It is "
+"especially true if the number of updates is much lower than the reads. This "
+"strategy is the default."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:217
+#, no-c-format
+msgid "Not-shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:219
+#, no-c-format
+msgid ""
+"Every time a query is executed, a Lucene IndexReader is opened. This "
+"strategy is not the most efficient since opening and warming up an "
+"IndexReader can be a relatively expensive operation."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:225
+#, no-c-format
+msgid "Custom"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:227
+#, no-c-format
+msgid ""
+"You can write your own reader strategy that suits your application needs by "
+"implementing <classname>org.hibernate.search.reader.ReaderProvider</"
+"classname>. The implementation must be thread safe."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:233
+#, no-c-format
+msgid ""
+"Some additional strategies are planned in future versions of Hibernate Search"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Author_Group.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Author_Group.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,28 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Batch_Index.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Batch_Index.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Batch_Index.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,211 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Batch_Index.xml:6
+#, no-c-format
+msgid "Manual Indexing"
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:9
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:11
+#, no-c-format
+msgid ""
+"It is sometimes useful to index an object even if this object is not "
+"inserted nor updated to the database. This is especially true when you want "
+"to build your index for the first time. You can achieve that goal using the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.index(customer);</"
+"emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:18
+#, no-c-format
+msgid ""
+"For maximum efficiency, Hibernate Search batches index operations and "
+"executes them at commit time (Note: you don't need to use <classname>org."
+"hibernate.Transaction</classname> in a JTA environment)."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:23
+#, no-c-format
+msgid ""
+"If you expect to index a lot of data, you need to be careful about memory "
+"consumption: since all documents are kept in a queue until the transaction "
+"commit, you can potentially face an <classname>OutOfMemoryException</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:28
+#, no-c-format
+msgid ""
+"To avoid that, you can set up the <literal>hibernate.search.worker."
+"batch_size</literal> property to a sensitive value: all index operations are "
+"queued until <literal>batch_size</literal> is reached. Every time "
+"<literal>batch_size</literal> is reached (or if the transaction is "
+"committed), the queue is processed (freeing memory) and emptied. Be aware "
+"that the changes cannot be rolled-back if the number of index elements goes "
+"beyond <literal>batch_size</literal>. Be also aware that the queue limits "
+"are also applied on regular transparent indexing (and not only when "
+"<literal>session.index()</literal> is used). That's why a sensitive "
+"<literal>batch_size</literal> value is expected."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:40
+#, no-c-format
+msgid ""
+"Other parameters which also can affect indexing time and memory consumption "
+"are <literal>hibernate.search.[default|&lt;indexname&gt;].batch."
+"merge_factor</literal> , <literal>hibernate.search.[default|&lt;"
+"indexname&gt;].batch.max_merge_docs</literal> and <literal>hibernate.search."
+"[default|&lt;indexname&gt;].batch.max_buffered_docs</literal> . These "
+"parameters are Lucene specific and Hibernate Search is just passing these "
+"parameters through - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:50
+#, no-c-format
+msgid ""
+"Here is an especially efficient way to index a given class (useful for index "
+"(re)initialization):"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:53
+#, no-c-format
+msgid ""
+"fullTextSession.setFlushMode(FlushMode.MANUAL);\n"
+"                fullTextSession.setCacheMode(CacheMode.IGNORE);\n"
+"                transaction = fullTextSession.beginTransaction();\n"
+"                //Scrollable results will avoid loading too many objects in "
+"memory\n"
+"                ScrollableResults results = fullTextSession.createCriteria"
+"( Email.class ).scroll(\n"
+"                ScrollMode.FORWARD_ONLY );\n"
+"                int index = 0;\n"
+"                while( results.next() ) {\n"
+"                index++;\n"
+"                fullTextSession.index( results.get(0) ); //index each "
+"element\n"
+"                if (index % batchSize == 0) s.clear(); //clear every "
+"batchSize since the queue is processed\n"
+"                }\n"
+"                transaction.commit();"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:55
+#, no-c-format
+msgid ""
+"It is critical that <literal>batchSize</literal> in the previous example "
+"matches the <literal>batch_size</literal> value described previously."
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:61
+#, no-c-format
+msgid "Purging"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:63
+#, no-c-format
+msgid ""
+"It is equally possible to remove an entity or all entities of a given type "
+"from a Lucene index without the need to physically remove them from the "
+"database. This operation is named purging and is done through the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.purge( Customer."
+"class, customer.getId() );</emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:70
+#, no-c-format
+msgid ""
+"Purging will remove the entity with the given id from the Lucene index but "
+"will not touch the database."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:73
+#, no-c-format
+msgid ""
+"If you need to remove all entities of a given type, you can use the "
+"<command>purgeAll</command> method."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:76
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                <emphasis role=\"bold\">fullTextSession.purgeAll( Customer."
+"class );</emphasis>\n"
+"                //optionally optimize the index\n"
+"                //fullTextSession.getSearchFactory().optimize( Customer."
+"class );\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:78
+#, no-c-format
+msgid "It is recommended to optimize the index after such an operation."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:82
+#, no-c-format
+msgid ""
+"Methods <command>index</command>, <command>purge</command> and "
+"<command>purgeAll</command> are available on "
+"<classname>FullTextEntityManager</classname> as well"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Book_Info.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Book_Info.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,54 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate Search Reference Guide CP04 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "Apache <trademark>Lucene</trademark> Integration"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:8
+#, no-c-format
+msgid ""
+"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 4 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is a Reference Guide to Hibernate Search for JBoss Enterprise "
+"Application Platform 4.3.0 CP04 FP01"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:24
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:29
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Configuration.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Configuration.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Configuration.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1155 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuration.xml:6
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:9
+#, no-c-format
+msgid "Directory Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:11
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. The Directory implementation can be customized, but Lucene "
+"comes bundled with a file system (<literal>FSDirectoryProvider</literal>) "
+"and a in memory (<literal>RAMDirectoryProvider</literal>) implementation. "
+"Hibernate Search has the notion of <literal>DirectoryProvider</literal> that "
+"handles the configuration and the initialization of the Lucene Directory."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:20
+#, no-c-format
+msgid ""
+"List of built-in Directory Providers in the namespace of org.hibernate."
+"search.store."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:25
+#, no-c-format
+msgid "Class"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:27 Configuration.xml:243 Configuration.xml:528
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:29
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:35
+#, no-c-format
+msgid "FSDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:37
+#, no-c-format
+msgid ""
+"File system based directory. The directory used will be &lt;indexBase&gt;/"
+"&lt; <literal>@Indexed.name</literal> &gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:41
+#, no-c-format
+msgid "<literal>indexBase</literal> : Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:42 Configuration.xml:60 Configuration.xml:85
+#, no-c-format
+msgid ""
+"<literal>indexName</literal>: override @Index.name (useful for sharded "
+"indexes)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:47
+#, no-c-format
+msgid "FSMasterDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:49
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider. It also copies the "
+"index to a source directory (aka copy directory) on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:52 Configuration.xml:77
+#, no-c-format
+msgid ""
+"The recommended value for the refresh period is (at least) 50% higher that "
+"the time to copy the information (default 3600 seconds - 60 minutes)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:53 Configuration.xml:79
+#, no-c-format
+msgid ""
+"Note that the copy is based on an incremental copy mechanism reducing the "
+"average copy time."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:55
+#, no-c-format
+msgid ""
+"DirectoryProvider typically used on the master node in a JMS back end "
+"cluster."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:56
+#, no-c-format
+msgid ""
+"<entry>DirectoryProvider typically used on slave nodes using a JMS back end."
+"</entry>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:59 Configuration.xml:84
+#, no-c-format
+msgid "<literal>indexBase</literal>: Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:62 Configuration.xml:87
+#, no-c-format
+msgid "<literal>sourceBase</literal>: Source (copy) base directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:63 Configuration.xml:88
+#, no-c-format
+msgid ""
+"<literal>source</literal>: Source directory suffix (default to "
+"<literal>@Indexed.name</literal>). The actual source directory name being "
+"<filename>&lt;sourceBase&gt;/&lt;source&gt;</filename>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:67 Configuration.xml:92
+#, no-c-format
+msgid ""
+"refresh: refresh period in second (the copy will take place every refresh "
+"seconds)."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:72
+#, no-c-format
+msgid "FSSlaveDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:74
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider, but retrieves a "
+"master version (source) on a regular basis. To avoid locking and "
+"inconsistent search results, 2 local copies are kept."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:81
+#, no-c-format
+msgid ""
+"<para>DirectoryProvider typically used on slave nodes using a JMS back end.</"
+"para>"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:97
+#, no-c-format
+msgid "RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:99
+#, no-c-format
+msgid ""
+"Memory based directory, the directory will be uniquely identified (in the "
+"same deployment unit) by the <literal>@Indexed.name</literal> element"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:103
+#, no-c-format
+msgid "none"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:109
+#, no-c-format
+msgid ""
+"If the built-in directory providers does not fit your needs, you can write "
+"your own directory provider by implementing the <classname>org.hibernate."
+"store.DirectoryProvider</classname> interface"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:114
+#, no-c-format
+msgid ""
+"Each indexed entity is associated to a Lucene index (an index can be shared "
+"by several entities but this is not usually the case). You can configure the "
+"index through properties prefixed by <command>hibernate.search.</"
+"command><replaceable>indexname</replaceable> . Default properties inherited "
+"to all indexes can be defined using the prefix <command>hibernate.search."
+"default.</command>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:121
+#, no-c-format
+msgid ""
+"To define the directory provider of a given index, you use the property "
+"<literal>hibernate.search.<replaceable>indexname</replaceable>."
+"directory_provider </literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:125
+#, no-c-format
+msgid ""
+"hibernate.search.default.directory_provider  org.hibernate.search.store."
+"FSDirectoryProvider\n"
+"                        hibernate.search.default.indexBase=/usr/lucene/"
+"indexes\n"
+"                        \n"
+"                        hibernate.search.Rules.directory_provider  org."
+"hibernate.search.store.RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:127
+#, no-c-format
+msgid "applied on"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:129
+#, no-c-format
+msgid ""
+"@Indexed(name=\"Status\")\n"
+"public class Status { ... }\n"
+"                        \n"
+"@Indexed(name=\"Rules\")\n"
+"public class Rule { ... }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:131
+#, no-c-format
+msgid ""
+"will create a file system directory in <filename>/usr/lucene/indexes/Status</"
+"filename> where the Status entities will be indexed, and use an in memory "
+"directory named <literal>Rules</literal> where Rule entities will be indexed."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:136
+#, no-c-format
+msgid ""
+"You can easily define common rules like the directory provider and base "
+"directory, and override those default later on on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:140
+#, no-c-format
+msgid ""
+"Writing your own <classname>DirectoryProvider</classname>, you can utilize "
+"this configuration mechanism as well."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:145
+#, no-c-format
+msgid "Index Sharding"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:147
+#, no-c-format
+msgid ""
+"In some extreme cases involving huge indexes (in size), it is necessary to "
+"split (shard) the indexing data of a given entity type into several Lucene "
+"indexes. This solution is not recommended until you reach significant index "
+"sizes and index update time are slowing down. The main drawback of index "
+"sharding is that searches will end up being slower since more files have to "
+"be opened for a single search. In other words don't do it until you have "
+"problems :)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:155
+#, no-c-format
+msgid ""
+"Despite this strong warning, Hibernate Search allows you to index a given "
+"entity type into several sub indexes. Data is sharded into the different sub "
+"indexes thanks to an <classname>IndexShardingStrategy</classname>. By "
+"default, no sharding strategy is enabled, unless the number of shards is "
+"configured. To configure the number of shards use the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:162
+#, no-c-format
+msgid "hibernate.search.&lt;indexName&gt;.sharding_strategy.nbr_of_shards 5"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:164
+#, no-c-format
+msgid "This will use 5 different shards."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:166
+#, no-c-format
+msgid ""
+"The default sharding strategy, when shards are set up, splits the data "
+"according to the hash value of the id string representation (generated by "
+"the Field Bridge). This ensures a fairly balanced sharding. You can replace "
+"the strategy by implementing <literal>IndexShardingStrategy</literal> and by "
+"setting the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:173
+#, no-c-format
+msgid ""
+"hibernate.search.&lt;indexName&gt;.sharding_strategy my.shardingstrategy."
+"Implementation"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:175
+#, no-c-format
+msgid ""
+"Each shard has an independent directory provider configuration as described "
+"in <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>. The "
+"DirectoryProvider default name for the previous example are <literal>&lt;"
+"indexName&gt;.0</literal> to <literal>&lt;indexName&gt;.4</literal>. In "
+"other words, each shard has the name of it's owning index followed by "
+"<command>.</command> (dot) and its index number."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:183
+#, no-c-format
+msgid ""
+"hibernate.search.default.indexBase /usr/lucene/indexes\n"
+"                        \n"
+"                        hibernate.search.Animal.sharding_strategy."
+"nbr_of_shards 5\n"
+"                        hibernate.search.Animal.directory_provider org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        hibernate.search.Animal.0.indexName Animal00\n"
+"                        hibernate.search.Animal.3.indexBase /usr/lucene/"
+"sharded\n"
+"                        hibernate.search.Animal.3.indexName Animal03"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:185
+#, no-c-format
+msgid ""
+"This configuration uses the default id string hashing strategy and shards "
+"the Animal index into 5 sub-indexes. All sub-indexes are FSDirectoryProvider "
+"instances and the directory where each sub-index is stored is as followed:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:192
+#, no-c-format
+msgid ""
+"for subindex 0: /usr/lucene/indexes/Animal00 (shared indexBase but "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:197
+#, no-c-format
+msgid ""
+"for subindex 1: /usr/lucene/indexes/Animal.1 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:202
+#, no-c-format
+msgid ""
+"for subindex 2: /usr/lucene/indexes/Animal.2 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:207
+#, no-c-format
+msgid ""
+"for subindex 3: /usr/lucene/shared/Animal03 (overridden indexBase, "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:212
+#, no-c-format
+msgid ""
+"for subindex 4: /usr/lucene/indexes/Animal.4 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:219
+#, no-c-format
+msgid "Worker Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:221
+#, no-c-format
+msgid ""
+"It is possible to refine how Hibernate Search interacts with Lucene through "
+"the worker configuration. The work can be executed to the Lucene directory "
+"or sent to a JMS queue for later processing. When processed to the Lucene "
+"directory, the work can be processed synchronously or asynchronously to the "
+"transaction commit."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:227
+#, no-c-format
+msgid "You can define the worker configuration using the following properties"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:231
+#, no-c-format
+msgid "Worker Configuration (in the namespace of hibernate.worker)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:241 Configuration.xml:526
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:247
+#, no-c-format
+msgid "backend"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:249
+#, no-c-format
+msgid ""
+"Out of the box support for the Apache Lucene back end and the JMS back end. "
+"Default to <literal>lucene</literal>. Supports also <literal>jms</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:255
+#, no-c-format
+msgid "execution"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:257
+#, no-c-format
+msgid ""
+"Supports synchronous and asynchrounous execution. Default to "
+"<literal><literal>sync</literal></literal>. Supports also <literal>async</"
+"literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:263
+#, no-c-format
+msgid "thread_pool.size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:265
+#, no-c-format
+msgid ""
+"Defines the number of threads in the pool. useful only for asynchrounous "
+"execution. Default to 1."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:270
+#, no-c-format
+msgid "buffer_queue.max"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:272
+#, no-c-format
+msgid ""
+"Defines the maximal number of work queue if the thread poll is starved. "
+"Useful only for asynchrounous execution. Default to infinite. If the limit "
+"is reached, the work is done by the main thread."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:279
+#, no-c-format
+msgid "jndi.*"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:281
+#, no-c-format
+msgid ""
+"Defines the JNDI properties to initiate the InitialContext (if needed). JNDI "
+"is only used by the JMS back end."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:286
+#, no-c-format
+msgid "jms.connection_factory"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:289
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"connection factory from (<literal>java:/ConnectionFactory</literal> by "
+"default in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:296
+#, no-c-format
+msgid "jms.queue"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:298
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"queue from. The queue will be used to post work messages."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:304
+#, no-c-format
+msgid "batch_size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:306
+#, no-c-format
+msgid ""
+"Defines the maximum number of elements indexed before flushing the "
+"transaction-bound queue. Default to 0 (i.e. no limit). See <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:317
+#, no-c-format
+msgid "JMS Master/Slave Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:319
+#, no-c-format
+msgid ""
+"This section describes in greater detail how to configure the Master / "
+"Slaves Hibernate Search architecture."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:323
+#, no-c-format
+msgid "Slave Nodes"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:325
+#, no-c-format
+msgid ""
+"Every index update operation is sent to a JMS queue. Index querying "
+"operations are executed on a local index copy."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:328
+#, no-c-format
+msgid ""
+"### slave configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local copy location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSSlaveDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                hibernate.search.worker.backend = jms\n"
+"                                hibernate.search.worker.jms."
+"connection_factory = java:/ConnectionFactory\n"
+"                                hibernate.search.worker.jms.queue = queue/"
+"hibernatesearch\n"
+"                                #optional jndi configuration (check your JMS "
+"provider for more information)\n"
+"                                \n"
+"                                ## Optional asynchronous execution strategy\n"
+"                                # org.hibernate.worker.execution = async\n"
+"                                # org.hibernate.worker.thread_pool.size = 2\n"
+"                                # org.hibernate.worker.buffer_queue.max = 50"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:330
+#, no-c-format
+msgid "A file system local copy is recommended for faster search results."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:333 Configuration.xml:345
+#, no-c-format
+msgid "The refresh period should be higher that the expected time copy."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:338
+#, no-c-format
+msgid "Master node"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:340
+#, no-c-format
+msgid ""
+"Every index update operation is taken from a JMS queue and executed. The "
+"master index(es) is(are) copied on a regular basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:343
+#, no-c-format
+msgid ""
+"### master configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location where information "
+"is copied to\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local master location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSMasterDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                #Backend is the default lucene one"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:348
+#, no-c-format
+msgid ""
+"In addition to the Hibernate Search framework configuration, a Message "
+"Driven Bean should be written and set up to process index works queue "
+"through JMS."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:352
+#, no-c-format
+msgid ""
+"@MessageDriven(activationConfig = {\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destinationType\", propertyValue=\"javax.jms.Queue\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destination\", propertyValue=\"queue/hiebrnatesearch\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"DLQMaxResent\", propertyValue=\"1\")\n"
+"                                } )\n"
+"                                public class MDBSearchController extends "
+"AbstractJMSHibernateSearchController implements MessageListener {\n"
+"                                @PersistenceContext EntityManager em;\n"
+"                                \n"
+"                                //method retrieving the appropriate session\n"
+"                                protected Session getSession() {\n"
+"                                return (Session) em.getDelegate();\n"
+"                                }\n"
+"                                \n"
+"                                //potentially close the session opened in "
+"#getSession(), not needed here\n"
+"                                protected void cleanSessionIfNeeded(Session "
+"session) \n"
+"                                }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:354
+#, no-c-format
+msgid ""
+"This example inherit the abstract JMS controller class available and "
+"implements a JavaEE 5 MDB. This implementation is given as an example and, "
+"while most likely more complex, can be adjusted to make use of non Java EE "
+"Message Driven Beans. For more information about the <command>getSession()</"
+"command> and <command>cleanSessionIfNeeded()</command>, please check "
+"<classname>AbstractJMSHibernateSearchController</classname>'s javadoc."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:364
+#, no-c-format
+msgid ""
+"Hibernate Search test suite makes use of JBoss Embedded to test the JMS "
+"integration. It allows the unit test to run both the MDB container and JBoss "
+"Messaging (JMS provider) in a standalone way (marketed by some as "
+"\"lightweight\")."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:373
+#, no-c-format
+msgid "Reader Strategy Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:375
+#, no-c-format
+msgid ""
+"The different reader strategies are described in <xref linkend="
+"\"Hibernate_Search-Architecture-Reader_Strategy\"/>. The default reader "
+"strategy is <literal>shared</literal>. This can be adjusted:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:378
+#, no-c-format
+msgid "hibernate.search.reader.strategy = not-shared"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:380
+#, no-c-format
+msgid ""
+"Adding this property switch to the <literal>non shared</literal> strategy."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:383
+#, no-c-format
+msgid "Or if you have a custom reader strategy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:385
+#, no-c-format
+msgid "hibernate.search.reader.strategy = my.corp.myapp.CustomReaderProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:387
+#, no-c-format
+msgid ""
+"where <classname>my.corp.myapp.CustomReaderProvider</classname> is the "
+"custom strategy implementation"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:392
+#, no-c-format
+msgid "Enabling Hibernate Search and automatic indexing"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:395
+#, no-c-format
+msgid "Enabling Hibernate Search"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:397
+#, no-c-format
+msgid ""
+"Hibernate Search is enabled out of the box when using Hibernate Annotations "
+"or Hibernate EntityManager. If, for some reason you need to disable it, set "
+"<literal>hibernate.search.autoregister_listeners</literal> to false. Note "
+"that there is no performance runtime when the listeners are enabled while no "
+"entity is indexable."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:404
+#, no-c-format
+msgid ""
+"To enable Hibernate Search in Hibernate Core, add the "
+"<literal>FullTextIndexEventListener</literal> for the three Hibernate events "
+"that occur after changes are executed to the database. Once again, such a "
+"configuration is not useful with Hibernate Annotations or Hibernate "
+"EntityManager."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:410
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                &lt;session-factory&gt;\n"
+"                                ...\n"
+"                                &lt;event type=\"post-update\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-insert\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-delete\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;/session-factory&gt;\n"
+"                                &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:412
+#, no-c-format
+msgid ""
+"Be sure to add the appropriate jar files in your classpath. Check "
+"<literal>lib/README.TXT</literal> for the list of third party libraries. A "
+"typical installation on top of Hibernate Annotations will add:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:418
+#, no-c-format
+msgid "<filename>hibernate-search.jar</filename>: the core engine"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:423
+#, no-c-format
+msgid "<filename>lucene-core-*.jar</filename>: Lucene core engine"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:429
+#, no-c-format
+msgid "Hibernate Core 3.2.6 and beyond"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:431
+#, no-c-format
+msgid ""
+"If you use Hibernate Core 3.2.6 and beyond, make sure to add three "
+"additional event listeners that cope with collection events"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:435
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                        &lt;session-factory&gt;\n"
+"                                        ...\n"
+"                                        &lt;event type=\"post-collection-"
+"recreate\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"remove\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"update\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;/session-factory&gt;\n"
+"                                        &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:437
+#, no-c-format
+msgid ""
+"Those additional event listeners have been introduced in Hibernate 3.2.6. "
+"note the <classname>FullTextIndexCollectionEventListener</classname> usage. "
+"You need to explicitly reference those event listeners unless you use "
+"Hibernate Annotations 3.3.1 and above."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:446
+#, no-c-format
+msgid "Automatic indexing"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:448
+#, no-c-format
+msgid ""
+"By default, every time an object is inserted, updated or deleted through "
+"Hibernate, Hibernate Search updates the according Lucene index. It is "
+"sometimes desirable to disable that features if either your index is read-"
+"only or if index updates are done in a batch way (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:453
+#, no-c-format
+msgid "To disable event based indexing, set"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:455
+#, no-c-format
+msgid "hibernate.search.indexing_strategy manual"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:458
+#, no-c-format
+msgid ""
+"In most case, the JMS backend provides the best of both world, a lightweight "
+"event based system keeps track of all changes in the system, and the "
+"heavyweight indexing process is done by a separate process or machine."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:467
+#, no-c-format
+msgid "Tuning Lucene indexing performance"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:469
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to tune the Lucene indexing performance by "
+"specifying a set of parameters which are passed through to underlying Lucene "
+"<literal>IndexWriter</literal> such as <literal>mergeFactor</literal>, "
+"<literal>maxMergeDocs</literal> and <literal>maxBufferedDocs</literal>. You "
+"can specify these parameters either as default values applying for all "
+"indexes or on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:477
+#, no-c-format
+msgid ""
+"There are two sets of parameters allowing for different performance settings "
+"depending on the use case. During indexing operations triggered by database "
+"modifications, the following ones are used: <itemizedlist> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"merge_factor</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_merge_docs</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_buffered_docs</literal></para> </listitem> </itemizedlist>When indexing "
+"occurs via <literal>FullTextSession.index()</literal> (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>), the following properties are used:"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:495
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.merge_factor"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:499
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:503
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:507
+#, no-c-format
+msgid ""
+"Unless the corresponding <literal>.batch</literal> property is explicitly "
+"set, the value will default to the <literal>.transaction</literal> property."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:511
+#, no-c-format
+msgid ""
+"For more information about Lucene indexing performances, please refer to the "
+"Lucene documentation."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:515
+#, no-c-format
+msgid ""
+"List of indexing performance properties in the namespace of hibernate.search."
+"[default|&lt;indexname&gt;]"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:530
+#, no-c-format
+msgid "Default Value"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:536
+#, no-c-format
+msgid "transaction.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:538 Configuration.xml:578
+#, no-c-format
+msgid "Controls segment merge frequency and size."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:539 Configuration.xml:579
+#, no-c-format
+msgid ""
+"Determines how often segment indices are merged when insertion occurs. With "
+"smaller values, less RAM is used while indexing, and searches on unoptimized "
+"indices are faster, but indexing speed is slower. With larger values, more "
+"RAM is used during indexing, and while searches on unoptimized indices are "
+"slower, indexing is faster. Thus larger values (&gt; 10) are best for batch "
+"index creation, and smaller values (&lt; 10) for indices that are "
+"interactively maintained. The value must no be lower than 2."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:547 Configuration.xml:557 Configuration.xml:569
+#, no-c-format
+msgid ""
+"Used by Hibernate Search during index update operations as part of database "
+"modifications."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:550 Configuration.xml:572 Configuration.xml:590
+#: Configuration.xml:611
+#, no-c-format
+msgid "<entry>10</entry>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:554
+#, no-c-format
+msgid "transaction.max_merge_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:556 Configuration.xml:596
+#, no-c-format
+msgid "Defines the largest number of documents allowed in a segment."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:560 Configuration.xml:600
+#, no-c-format
+msgid "Unlimited (Integer.MAX_VALUE)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:564
+#, no-c-format
+msgid "transaction. max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:567 Configuration.xml:606
+#, no-c-format
+msgid ""
+"Controls the amount of documents buffered in memory during indexing. The "
+"bigger the more RAM is consumed."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:576
+#, no-c-format
+msgid "batch.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:587 Configuration.xml:597 Configuration.xml:608
+#, no-c-format
+msgid "Used during indexing via <literal>FullTextSession.index()</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:594
+#, no-c-format
+msgid "batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:604
+#, no-c-format
+msgid "batch.max_buffered_docs"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Feedback.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Feedback.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Feedback.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,34 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Getting_Started.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Getting_Started.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Getting_Started.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,606 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"Welcome to Hibernate Search! The following chapter will guide you through "
+"the initial steps required to integrate Hibernate Search into an existing "
+"Hibernate enabled application. In case you are a Hibernate first timer we "
+"recommend you start <ulink url=\"http://hibernate.org/152.html\">here</"
+"ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "System Requirements"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:18
+#, no-c-format
+msgid "System requirements"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:23
+#, no-c-format
+msgid "Java Runtime"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:25
+#, no-c-format
+msgid ""
+"A JDK or JRE version <emphasis>5</emphasis> or greater. You can download a "
+"Java Runtime for Windows/Linux/Solaris <ulink url=\"http://java.sun.com/"
+"javase/downloads/\"> here </ulink>."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:31
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"<literal>hibernate-search.jar</literal> and all dependencies from the "
+"<literal>lib</literal> directory of the Hibernate Search distribution, "
+"especially lucene."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:39
+#, no-c-format
+msgid "Hibernate Core"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:41
+#, no-c-format
+msgid ""
+"These instructions have been tested against Hibernate 3.2.x. Next to the "
+"main <literal>hibernate3.jar</literal> you will need all required libraries "
+"from the <literal>lib</literal> directory of the distribution. Refer to "
+"<literal>README.txt</literal> in the <literal>lib</literal> directory of the "
+"distribution to determine the minimum runtime requirements."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:50
+#, no-c-format
+msgid "Hibernate Annotations"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:52
+#, no-c-format
+msgid ""
+"Although Hibernate Search can be used without Hibernate Annotations the "
+"following instructions use them for ease of use. The tutorial is tested "
+"against version 3.3.x of Hibernate Annotations."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:60
+#, no-c-format
+msgid ""
+"You can download all dependencies from the Hibernate <ulink url=\"http://www."
+"hibernate.org/6.html\">download site</ulink>. You can also verify the "
+"dependency versions against the <ulink url=\"http://www.hibernate.org/6."
+"html#A3\">Hibernate Compatibility Matrix</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:65
+#, no-c-format
+msgid "Maven"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:67
+#, no-c-format
+msgid ""
+"Instead of managing all dependencies yourself, maven users are able to use "
+"the <ulink url=\"http://repository.jboss.com/maven2\">JBoss maven "
+"repository</ulink>. Just add the JBoss repository url to the "
+"<emphasis>repositories</emphasis> section of your <filename>pom.xml</"
+"filename> or <filename>settings.xml</filename>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:73
+#, no-c-format
+msgid ""
+"&lt;repository&gt;\n"
+"                           &lt;id&gt;repository.jboss.org&lt;/id&gt;\n"
+"                        &lt;name&gt;JBoss Maven Repository&lt;/name&gt;\n"
+"                        &lt;url&gt;http://repository.jboss.org/maven2&lt;/"
+"url&gt;\n"
+"                        &lt;layout&gt;default&lt;/layout&gt;\n"
+"                        &lt;/repository&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:75
+#, no-c-format
+msgid "Then add the following dependencies to your pom.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:77
+#, no-c-format
+msgid ""
+"&lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-search&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.0.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-annotations&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-entitymanager&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.1.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:79
+#, no-c-format
+msgid ""
+"Not all three dependencies are required. <emphasis>hibernate-search</"
+"emphasis> alone contains everything needed to use Hibernate Search. "
+"<emphasis>hibernate-annotations</emphasis> is only needed if you use non-"
+"Hibernate Search annotations, which are used in the examples of this "
+"tutorial. Note that <emphasis>hibernate-entitymanager</emphasis> is only "
+"required if you use Hibernate Search in conjunction with JPA."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:87
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:89
+#, no-c-format
+msgid ""
+"Once all required dependencies have been downloaded and added to your "
+"application, you will need to add some properties to your hibernate "
+"configuration file. If you are using Hibernate directly this can be done in "
+"<literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</"
+"literal>. If you are using Hibernate via JPA you can also add the properties "
+"to <literal>persistence.xml</literal>. The default properties are suitable "
+"for the standard use."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:92
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. Hibernate Search handles the initialization and configuration "
+"of a Lucene <literal>Directory</literal> instance via a "
+"<literal>DirectoryProvider</literal>. In this tutorial we will use a "
+"subclass of <literal>DirectoryProvider</literal> called "
+"<classname>FSDirectoryProvider</classname>. This will give us the ability to "
+"physically inspect the Lucene indexes created by Hibernate Search (e.g. via "
+"<ulink url=\"http://www.getopt.org/luke/\">Luke</ulink>). Once you have a "
+"working configuration you can start experimenting with other directory "
+"providers (see <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:103
+#, no-c-format
+msgid ""
+"Lets assume that your application contains the Hibernate managed class "
+"<classname>example.Book</classname> and you now want to add free text search "
+"capabilities to your application in order to search body and summary of the "
+"books contained in your database."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:108
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        private Integer id; \n"
+"                        private String body;  \n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:110
+#, no-c-format
+msgid ""
+"First you need to tell Hibernate Search which <classname>DirectoryProvider</"
+"classname> to use. This can be achieved by setting the <literal>hibernate."
+"search.default.directory_provider</literal> property. You also have to "
+"specify the default root directory for all indexes via <literal>hibernate."
+"search.default.indexBase</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:116
+#, no-c-format
+msgid ""
+"...\n"
+"                        # the default directory provider\n"
+"                        hibernate.search.default.directory_provider = org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        \n"
+"                        # the default base directory for the indecies\n"
+"                        hibernate.search.default.indexBase = /var/lucene/"
+"indexes    \n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:118
+#, no-c-format
+msgid ""
+"Now add three annotations to the <classname>Book</classname> class. The "
+"first annotation <literal>@Indexed</literal> marks <classname>Book</"
+"classname> as indexable. By design Hibernate Search needs to store an "
+"untokenized id in the index to ensure index unicity for a given entity. "
+"<literal>@DocumentId</literal> marks the property to use for this purpose. "
+"Most, if not all of the time, the property is the database primary key. "
+"Finally you will need to index the fields you wish to make searchable. In "
+"our example these fields are <literal>body</literal> and <literal>summary</"
+"literal>. Both properties get annotated with <literal>@Field</literal>. The "
+"property <literal>index=Index.TOKENIZED</literal> will ensure that the text "
+"will be tokenized using the default Lucene analyzer whereas "
+"<literal>store=Store.NO</literal> ensures that the actual data will not be "
+"stored in the index. Usually, tokenizing means chunking a sentence into "
+"individual words (and potentially excluding common words like <literal>a</"
+"literal>, <literal>the </literal>etc)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:135
+#, no-c-format
+msgid ""
+"These settings are sufficient for an initial test. For more details on "
+"entity mapping refer to <xref linkend=\"Hibernate_Search-Mapping-Entity\"/>. "
+"In case you want to store and retrieve the indexed data in order to avoid "
+"database roundtrips, refer to projections in"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:140
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        <emphasis role=\"bold\">@Indexed</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        <emphasis role=\"bold\">@DocumentId</emphasis>\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String body;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:144
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:146
+#, no-c-format
+msgid ""
+"Hibernate Search will index every entity persisted, updated or removed "
+"through Hibernate core transparently for the application. However, the data "
+"already present in your database needs to be indexed once to populate the "
+"Lucene index. Once you have added the above properties and annotations it is "
+"time to trigger an initial batch index of your books. You can achieve this "
+"by adding one of the following code examples to your code (see also <xref "
+"linkend=\"Hibernate_Search-Batch_Index\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:154 Getting_Started.xml:176
+#, no-c-format
+msgid "Example using Hibernate Session:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:156
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        List books = session.createQuery(\"from Book as book"
+"\").list();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextSession.index(book);\n"
+"                        }\n"
+"                        tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:158 Getting_Started.xml:180
+#, no-c-format
+msgid "Example using JPA:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:160
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        FullTextEntityManager fullTextEntityManager = Search."
+"createFullTextEntityManager(em);\n"
+"                        List books = em.createQuery(\"select book from Book "
+"as book\").getResultList();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextEntityManager.index(book);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:162
+#, no-c-format
+msgid ""
+"After executing the above code, you should be able to see a Lucene index "
+"under <literal>/var/lucene/indexes/example.Book</literal>. Go ahead an "
+"inspect this index. It will help you to understand how Hibernate Search "
+"works."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:169
+#, no-c-format
+msgid "Searching"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:171
+#, no-c-format
+msgid ""
+"Now it is time to execute a first search. The following code will prepare a "
+"query against the fields <literal>summary</literal> and <literal>body</"
+"literal>, execute it and return a list of <classname>Book</classname>s:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:178
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        \n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        \n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextSession."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();\n"
+"                        \n"
+"                        tx.commit();\n"
+"                        session.close();"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:182
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        \n"
+"                        FullTextEntityManager fullTextEntityManager = \n"
+"                        org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextEntityManager."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:186
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:188
+#, no-c-format
+msgid ""
+"Assume that one of your indexed book entities contains the text \"Java rocks"
+"\" and you want to get hits for all of the following queries: \"rock\", "
+"\"rocks\", \"rocked\" and \"rocking\". In Lucene this can be achieved by "
+"choosing an analyzer class which applies word stemming during the indexing "
+"process. Hibernate Search offers several ways to configure the analyzer to "
+"use (see <xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:197
+#, no-c-format
+msgid ""
+"Setting the <literal>hibernate.search.analyzer</literal> property in the "
+"configuration file. The specified class will then be the default analyzer."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:203
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the entity level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:208
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the field level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:213
+#, no-c-format
+msgid ""
+"The following example uses the entity level annotation to apply a English "
+"language analyzer which would help you to achieve your goal. The class "
+"<classname>EnglishAnalyzer</classname> is a custom class using the Snowball "
+"English Stemmer from the <ulink url=\"http://lucene.apache.org/java/docs/"
+"lucene-sandbox/\">Lucene Sandbox</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:220
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        @Indexed\n"
+"                        <emphasis role=\"bold\">@Analyzer(impl = example."
+"EnglishAnalyzer.class)</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        @DocumentId\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String body;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ... \n"
+"                        }\n"
+"                        \n"
+"                        public class EnglishAnalyzer extends Analyzer {\n"
+"                        /**\n"
+"                        * {@inheritDoc}\n"
+"                        */\n"
+"                        @Override\n"
+"                        public TokenStream tokenStream(String fieldName, "
+"Reader reader) {\n"
+"                        TokenStream result = new StandardTokenizer(reader);\n"
+"                        result = new StandardFilter(result);\n"
+"                        result = new LowerCaseFilter(result);\n"
+"                        result = new SnowballFilter(result, name);\n"
+"                        return result;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:224
+#, no-c-format
+msgid "What's next"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:226
+#, no-c-format
+msgid ""
+"The above paragraphs hopefully helped you getting started with Hibernate "
+"Search. You should by now have a file system based index and be able to "
+"search and retrieve a list of managed objects via Hibernate Search. The next "
+"step is to get more familiar with the overall architecture (<xref linkend="
+"\"Hibernate_Search-Architecture\"/>) and explore the basic features in more "
+"detail."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:233
+#, no-c-format
+msgid ""
+"Two topics which where only briefly touched in this tutorial were analyzer "
+"configuration (<xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>) and "
+"field bridges (<xref linkend=\"Hibernate_Search-Mapping-Bridge\"/>), both "
+"important features required for more fine-grained indexing."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:238
+#, no-c-format
+msgid ""
+"More advanced topics cover clustering (<xref linkend=\"Hibernate_Search-"
+"Configuration-JMS_Backend\"/>) and large indexes handling (<xref linkend="
+"\"Hibernate_Search-Configuration-Index_Sharding\"/>)."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Hibernate_Search_Reference_Guide_CP04_FP01.po
===================================================================

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Introduction.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Introduction.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,44 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:8
+#, no-c-format
+msgid ""
+"Full text search engines like <productname>Apache Lucene</productname> are "
+"powerful technologies that add efficient free text search capabilities to "
+"applications. However, they suffer several mismatches when dealing with "
+"object domain models. Amongst other things, indexes have to be kept up to "
+"date and mismatches between index structure and domain model as well as "
+"query mismatches need to be avoided."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Hibernate Search indexes your domain model with the help of a few "
+"annotations, takes care of database/index synchronization and brings back "
+"regular managed objects from free text queries. To achieve this Hibernate "
+"Search combines the power of <ulink url=\"http://www.hibernate.org"
+"\">Hibernate</ulink> and <ulink url=\"http://lucene.apache.org\">Apache "
+"Lucene</ulink>."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Lucene_Native.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Lucene_Native.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Lucene_Native.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,161 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Lucene_Native.xml:6
+#, no-c-format
+msgid "Accessing Lucene natively"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:9
+#, no-c-format
+msgid "SearchFactory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:11
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> object keeps track of the "
+"underlying Lucene resources for Hibernate Search, it's also a convenient way "
+"to access Lucene natively. The <classname>SearchFactory</classname> can be "
+"accessed from a <classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:20
+#, no-c-format
+msgid "Accessing a Lucene Directory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:22
+#, no-c-format
+msgid ""
+"You can always access the Lucene directories through plain Lucene, the "
+"Directory structure is in no way different with or without Hibernate Search. "
+"However there are some more convenient ways to access a given Directory. The "
+"<classname>SearchFactory</classname> keeps track of the "
+"<classname>DirectoryProvider</classname>s per indexed class. One directory "
+"provider can be shared amongst several indexed classes if the classes share "
+"the same underlying index directory. While usually not the case, a given "
+"entity can have several <classname>DirectoryProvider</classname>s is the "
+"index is sharded (see <xref linkend=\"Hibernate_Search-Configuration-"
+"Index_Sharding\"/>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:32
+#, no-c-format
+msgid ""
+"DirectoryProvider[] provider = searchFactory.getDirectoryProviders(Order."
+"class);\n"
+"                        org.apache.lucene.store.Directory directory = "
+"provider[0].getDirectory();"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:34
+#, no-c-format
+msgid ""
+"In this example, directory points to the lucene index storing "
+"<classname>Order</classname>s information. Note that the obtained Lucene "
+"directory must not be closed (this is Hibernate Search responsibility)."
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:41
+#, no-c-format
+msgid "Using an IndexReader"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:43
+#, no-c-format
+msgid ""
+"Queries in Lucene are executed on an <literal>IndexReader</literal>. "
+"Hibernate Search caches such index readers to maximize performances. Your "
+"code can access such cached / shared resources. You will just have to follow "
+"some \"good citizen\" rules."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:48
+#, no-c-format
+msgid ""
+"DirectoryProvider orderProvider = searchFactory.getDirectoryProviders(Order."
+"class)[0];\n"
+"                        DirectoryProvider clientProvider = searchFactory."
+"getDirectoryProviders(Client.class)[0];\n"
+"                        \n"
+"                        ReaderProvider readerProvider = searchFactory."
+"getReaderProvider();\n"
+"                        IndexReader reader = readerProvider.openReader"
+"(orderProvider, clientProvider);\n"
+"                        \n"
+"                        try {\n"
+"                        //do read-only operations on the reader\n"
+"                        }\n"
+"                        finally {\n"
+"                        readerProvider.closeReader(reader);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:50
+#, no-c-format
+msgid ""
+"The ReaderProvider (described in <xref linkend=\"Hibernate_Search-"
+"Architecture-Reader_Strategy\"/>), will open an IndexReader on top of the "
+"index(es) referenced by the directory providers. This IndexReader being "
+"shared amongst several clients, you must adhere to the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:57
+#, no-c-format
+msgid ""
+"Never call indexReader.close(), but always call readerProvider.closeReader"
+"(reader); (a finally block is the best area)."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:63
+#, no-c-format
+msgid ""
+"This indexReader must not be used for modification operations (especially "
+"delete), if you want to use an read/write index reader, open one from the "
+"Lucene Directory object."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:69
+#, no-c-format
+msgid ""
+"Aside from those rules, you can use the IndexReader freely, especially to do "
+"native queries. Using the shared <literal>IndexReader</literal>s will make "
+"most queries more efficient."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Mapping.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Mapping.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Mapping.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1284 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Mapping.xml:6
+#, no-c-format
+msgid "Mapping Entities to the Index Structure"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:8
+#, no-c-format
+msgid ""
+"All the metadata information needed to index entities is described through "
+"some Java annotations. There is no need for xml mapping files nor a list of "
+"indexed entities. The list is discovered at startup by scanning the "
+"Hibernate mapped entities."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:14
+#, no-c-format
+msgid "Mapping an entity"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:17
+#, no-c-format
+msgid "Basic mapping"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:19
+#, no-c-format
+msgid ""
+"First, we must declare a persistent class as indexable. This is done by "
+"annotating the class with <literal>@Indexed</literal> (all entities not "
+"annotated with <literal>@Indexed</literal> will be ignored by the indexing "
+"process):"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:24
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                <emphasis role=\"bold\">@Indexed(index="
+"\"indexes/essays\")</emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:26
+#, no-c-format
+msgid ""
+"The <literal>index</literal> attribute tells Hibernate what the Lucene "
+"directory name is (usually a directory on your file system). If you wish to "
+"define a base directory for all Lucene indexes, you can use the "
+"<literal>hibernate.search.default.indexBase</literal> property in your "
+"configuration file. Each entity instance will be represented by a Lucene "
+"<classname>Document</classname> inside the given index (aka Directory)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:34
+#, no-c-format
+msgid ""
+"For each property (or attribute) of your entity, you have the ability to "
+"describe how it will be indexed. The default (i.e. no annotation) means that "
+"the property is completely ignored by the indexing process. <literal>@Field</"
+"literal> does declare a property as indexed. When indexing an element to a "
+"Lucene document you can specify how it is indexed:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:43
+#, no-c-format
+msgid ""
+"<literal>name</literal> : describe under which name, the property should be "
+"stored in the Lucene Document. The default value is the property name "
+"(following the JavaBeans convention)"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:49
+#, no-c-format
+msgid ""
+"<literal>store</literal> : describe whether or not the property is stored in "
+"the Lucene index. You can store the value <literal>Store.YES</literal> "
+"(consuming more space in the index but allowing projection, see <xref "
+"linkend=\"Hibernate_Search-Query-Projections\"/> for more information), "
+"store it in a compressed way <literal>Store.COMPRESS</literal> (this does "
+"consume more CPU), or avoid any storage <literal>Store.NO</literal> (this is "
+"the default value). When a property is stored, you can retrieve it from the "
+"Lucene Document (note that this is not related to whether the element is "
+"indexed or not)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:62
+#, no-c-format
+msgid ""
+"index: describe how the element is indexed (i.e. the process used to index "
+"the property and the type of information store). The different values are "
+"<literal>Index.NO</literal> (no indexing, i.e. cannot be found by a query), "
+"<literal>Index.TOKENIZED</literal> (use an analyzer to process the "
+"property), <literal>Index.UN_TOKENISED</literal> (no analyzer pre-"
+"processing), <literal>Index.NO_NORM</literal> (do not store the "
+"normalization data). The default value is <literal>TOKENIZED</literal>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:73
+#, no-c-format
+msgid "These attributes are part of the <literal>@Field</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:76
+#, no-c-format
+msgid ""
+"Whether or not you want to store the data depends on how you wish to use the "
+"index query result. For a regular Hibernate Search usage, storing is not "
+"necessary. However you might want to store some fields to subsequently "
+"project them (see <xref linkend=\"Hibernate_Search-Query-Projections\"/> for "
+"more information)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:82
+#, no-c-format
+msgid ""
+"Whether or not you want to tokenize a property depends on whether you wish "
+"to search the element as is, or by the words it contains. It make sense to "
+"tokenize a text field, but it does not to do it for a date field (or an id "
+"field). Note that fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:88
+#, no-c-format
+msgid ""
+"Finally, the id property of an entity is a special property used by "
+"Hibernate Search to ensure index unicity of a given entity. By design, an id "
+"has to be stored and must not be tokenized. To mark a property as index id, "
+"use the <literal>@DocumentId</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:94
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                <emphasis role=\"bold\">@DocumentId</"
+"emphasis>\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@Field(name="
+"\"Abstract\", index=Index.TOKENIZED, store=Store.YES)</emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED)</emphasis>\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:96
+#, no-c-format
+msgid ""
+"These annotations define an index with three fields: <literal>id</literal> , "
+"<literal>Abstract</literal> and <literal>text</literal> . Note that by "
+"default the field name is decapitalized, following the JavaBean "
+"specification."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:102
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify <literal>@DocumentId</literal> on the "
+"identifier property of your entity class."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:109
+#, no-c-format
+msgid "Mapping properties multiple times"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:111
+#, no-c-format
+msgid ""
+"It is sometimes needed to map a property multiple times per index, with "
+"slightly different indexing strategies. Especially, sorting a query by field "
+"requires the field to be <literal>UN_TOKENIZED</literal>. If one want to "
+"search by words in this property and still sort it, one need to index it "
+"twice, once tokenized, once untokenized. @Fields allows to achieve this goal."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:118
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index = \"Book\" )\n"
+"                                public class Book {\n"
+"                                @Fields( {\n"
+"                                @Field(index = Index.TOKENIZED),\n"
+"                                @Field(name = \"summary_forSort\", index = "
+"Index.UN_TOKENIZED, store = Store.YES)\n"
+"                                } )\n"
+"                                public String getSummary() {\n"
+"                                return summary;\n"
+"                                }\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:120
+#, no-c-format
+msgid ""
+"The field summary is indexed twice, once as <literal>summary</literal> in a "
+"tokenized way, and once as <literal>summary_forSort</literal> in an "
+"untokenized way. @Field supports 2 attributes useful when @Fields is used:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:127
+#, no-c-format
+msgid ""
+"analyzer: defines a @Analyzer annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:132
+#, no-c-format
+msgid ""
+"bridge: defines a @FieldBridge annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:137
+#, no-c-format
+msgid "See below for more information about analyzers and field bridges."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:142
+#, no-c-format
+msgid "Embedded and Associated Objects"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:144
+#, no-c-format
+msgid ""
+"Associated objects as well as embedded objects can be indexed as part of the "
+"root entity index. It is necessary if you expect to search a given entity "
+"based on properties of the associated object(s). In the following example, "
+"the use case is to return the places whose city is Atlanta (In the Lucene "
+"query parser language, it would translate into <code>address.city:Atlanta</"
+"code>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:151
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:153
+#, no-c-format
+msgid ""
+"In this example, the place fields will be indexed in the <literal>Place</"
+"literal> index. The <literal>Place</literal> index documents will also "
+"contain the fields <literal>address.id</literal>, <literal>address.street</"
+"literal>, and <literal>address.city</literal> which you will be able to "
+"query. This is enabled by the <literal>@IndexedEmbedded</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:162
+#, no-c-format
+msgid ""
+"Be careful. Because the data is denormalized in the Lucene index when using "
+"the <classname>@IndexedEmbedded</classname> technique, Hibernate Search "
+"needs to be aware of any change in the Place object and any change in the "
+"Address object to keep the index up to date. To make sure the Place Lucene "
+"document is updated when it's Address changes, you need to mark the other "
+"side of the bidirectional relationship with <classname>@ContainedIn</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:172
+#, no-c-format
+msgid ""
+"<literal>@ContainedIn</literal> is only useful on associations pointing to "
+"entities as opposed to embedded (collection of) objects."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:176
+#, no-c-format
+msgid "Let's make our example a bit more complex:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:178
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded"
+"(depth = 1, prefix = \"ownedBy_\")</emphasis>\n"
+"                                private Owner ownedBy;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner {\n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:180
+#, no-c-format
+msgid ""
+"Any <literal>@*ToOne</literal> and <literal>@Embedded</literal> attribute "
+"can be annotated with <literal>@IndexedEmbedded</literal>. The attributes of "
+"the associated class will then be added to the main entity index. In the "
+"previous example, the index will contain the following fields"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:188
+#, no-c-format
+msgid "<para>id</para>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:192
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:196
+#, no-c-format
+msgid "address.street"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:200
+#, no-c-format
+msgid "address.city"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:204
+#, no-c-format
+msgid "addess.ownedBy_name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:208
+#, no-c-format
+msgid ""
+"The default prefix is <literal>propertyName.</literal>, following the "
+"traditional object navigation convention. You can override it using the "
+"<literal>prefix</literal> attribute as it is shown on the <literal>ownedBy</"
+"literal> property."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:213
+#, no-c-format
+msgid ""
+"<literal>depth</literal> is necessary when the object graph contains a "
+"cyclic dependency of classes (not instances). For example, if "
+"<classname>Owner</classname> points to <classname>Place</classname>. "
+"Hibernate Search will stop including Indexed embedded attributes after "
+"reaching the expected depth (or the object graph boundaries are reached). A "
+"class having a self reference is an example of cyclic dependency. In our "
+"example, because <literal>depth</literal> is set to 1, any "
+"<literal>@IndexedEmbedded</literal> attribute in Owner (if any) will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:223
+#, no-c-format
+msgid ""
+"Such a feature (<literal>@IndexedEmbedded</literal>) is very useful to "
+"express queries referring to associated objects, such as:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:229
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where address city is Atlanta. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:232
+#, no-c-format
+msgid "+name:jboss +address.city:atlanta"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:236
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where owner's name contain Joe. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:239
+#, no-c-format
+msgid "+name:jboss +address.orderBy_name:joe"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:243
+#, no-c-format
+msgid ""
+"In a way it mimics the relational join operation in a more efficient way (at "
+"the cost of data duplication). Remember that, out of the box, Lucene indexes "
+"have no notion of association, the join operation is simply non-existent. It "
+"might help to keep the relational model normalized while benefiting from the "
+"full text index speed and feature richness."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:251
+#, no-c-format
+msgid ""
+"An associated object can itself be (but don't have to) <literal>@Indexed</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:255
+#, no-c-format
+msgid ""
+"When @IndexedEmbedded points to an entity, the association has to be "
+"directional and the other side has to be annotated <literal>@ContainedIn</"
+"literal> (as see in the previous example). If not, Hibernate Search has no "
+"way to update the root index when the associated entity is updated (in our "
+"example, a <literal>Place</literal> index document has to be updated when "
+"the associated <classname>Address</classname> instance is updated."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:263
+#, no-c-format
+msgid ""
+"Sometimes, the object type annotated by <classname>@IndexedEmbedded</"
+"classname> is not the object type targeted by Hibernate and Hibernate Search "
+"especially when interface are used in lieu of their implementation. You can "
+"override the object type targeted by Hibernate Search using the "
+"<command>targetElement</command> parameter."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:270
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index= Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @IndexedEmbedded(depth = 1, prefix = "
+"\"ownedBy_\", <emphasis role=\"bold\">targetElement = Owner.class</"
+"emphasis>)\n"
+"                                @Target(Owner.class)\n"
+"                                private Person ownedBy;\n"
+"                                \n"
+"                                \n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner implements Person { ... }"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:274
+#, no-c-format
+msgid "Boost factor"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:276
+#, no-c-format
+msgid ""
+"Lucene has the notion of <emphasis>boost factor</emphasis> . It's a way to "
+"give more weight to a field or to an indexed element over an other during "
+"the indexation process. You can use <literal>@Boost</literal> at the field "
+"or the class level."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:281
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                <emphasis role=\"bold\">@Boost(2)</"
+"emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                @DocumentId\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                @Field(name=\"Abstract\", index=Index."
+"TOKENIZED, store=Store.YES)\n"
+"                                <emphasis role=\"bold\">@Boost(2.5f)</"
+"emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:283
+#, no-c-format
+msgid ""
+"In our example, Essay's probability to reach the top of the search list will "
+"be multiplied by 2 and the summary field will be 2.5 more important than the "
+"test field. Note that this explanation is actually wrong, but it is simple "
+"and close enough to the reality. Please check the Lucene documentation or "
+"the excellent <citetitle>Lucene In Action </citetitle> from Otis Gospodnetic "
+"and Erik Hatcher."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:292
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:294
+#, no-c-format
+msgid ""
+"The default analyzer class used to index the elements is configurable "
+"through the <literal>hibernate.search.analyzer</literal> property. If none "
+"is defined, <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</"
+"classname> is used as the default."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:300
+#, no-c-format
+msgid ""
+"You can also define the analyzer class per entity, per property and even per "
+"@Field (useful when multiple fields are indexed from a single property)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:304
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                @Analyzer(impl = EntityAnalyzer.class)\n"
+"                                public class MyEntity {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Integer id;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                @Analyzer(impl = PropertyAnalyzer.class)\n"
+"                                private String summary;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED, analyzer = "
+"@Analyzer(impl = FieldAnalyzer.class)\n"
+"                                private String body;\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:306
+#, no-c-format
+msgid ""
+"In this example, <classname>EntityAnalyzer</classname> is used index all "
+"tokenized properties (e.g. <literal>name</literal>), except for "
+"<literal>summary</literal> and <literal>body</literal> which are indexed "
+"with <classname>PropertyAnalyzer</classname> and <classname>FieldAnalyzer</"
+"classname> respectively."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:313
+#, no-c-format
+msgid ""
+"Mixing different analyzers in the same entity is most of the time a bad "
+"practice. It makes query building more complex and results less predictable "
+"(for the novice), especially if you are using a QueryParser (which uses the "
+"same analyzer for the whole query). As a thumb rule, the same analyzer "
+"should be used for both the indexing and the query for a given field."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:326
+#, no-c-format
+msgid "Property/Field Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:328
+#, no-c-format
+msgid ""
+"In Lucene all index fields have to be represented as Strings. For this "
+"reason all entity properties annotated with <literal>@Field</literal> have "
+"to be indexed in a String form. For most of your properties, Hibernate "
+"Search does the translation job for you thanks to a built-in set of bridges. "
+"In some cases, though you need a more fine grain control over the "
+"translation process."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:336
+#, no-c-format
+msgid "Built-in bridges"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:338
+#, no-c-format
+msgid ""
+"<literal>Hibernate Search</literal> comes bundled with a set of built-in "
+"bridges between a Java property type and its full text representation."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:344
+#, no-c-format
+msgid "null"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:347
+#, no-c-format
+msgid ""
+"null elements are not indexed. Lucene does not support null elements and "
+"this does not make much sense either."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:353
+#, no-c-format
+msgid "java.lang.String"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:356
+#, no-c-format
+msgid "String are indexed as is"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:361
+#, no-c-format
+msgid ""
+"short, Short, integer, Integer, long, Long, float, Float, double, Double, "
+"BigInteger, BigDecimal"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:365
+#, no-c-format
+msgid ""
+"Numbers are converted in their String representation. Note that numbers "
+"cannot be compared by Lucene (i.e. used in ranged queries) out of the box: "
+"they have to be padded"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:368
+#, no-c-format
+msgid ""
+"Using a Range query is debatable and has drawbacks, an alternative approach "
+"is to use a Filter query which will filter the result query to the "
+"appropriate range."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:372
+#, no-c-format
+msgid "Hibernate Search will support a padding mechanism"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:378
+#, no-c-format
+msgid "java.util.Date"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:381
+#, no-c-format
+msgid ""
+"Dates are stored as yyyyMMddHHmmssSSS in GMT time (200611072203012 for Nov "
+"7th of 2006 4:03PM and 12ms EST). You shouldn't really bother with the "
+"internal format. What is important is that when using a DateRange Query, you "
+"should know that the dates have to be expressed in GMT time."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:387
+#, no-c-format
+msgid ""
+"Usually, storing the date up to the millisecond is not necessary. "
+"<literal>@DateBridge</literal> defines the appropriate resolution you are "
+"willing to store in the index ( <literal> <literal>@DateBridge"
+"(resolution=Resolution.DAY)</literal> </literal> ). The date pattern will "
+"then be truncated accordingly."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:394
+#, no-c-format
+msgid ""
+"@Entity \n"
+"                                                        @Indexed\n"
+"                                                        public class Meeting "
+"{\n"
+"                                                        @Field(index=Index."
+"UN_TOKENIZED)\n"
+"                                                        <emphasis role=\"bold"
+"\">@DateBridge(resolution=Resolution.MINUTE)</emphasis>\n"
+"                                                        private Date date;\n"
+"                                                        ..."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:397
+#, no-c-format
+msgid ""
+"A Date whose resolution is lower than <literal>MILLISECOND</literal> cannot "
+"be a <literal>@DocumentId</literal>"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:408
+#, no-c-format
+msgid "Custom Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:410
+#, no-c-format
+msgid ""
+"It can happen that the built-in bridges of Hibernate Search do not cover "
+"some of your property types, or that the String representation used is not "
+"what you expect. The following paragraphs several solutions for this problem."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:416
+#, no-c-format
+msgid "StringBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:418
+#, no-c-format
+msgid ""
+"The simplest custom solution is to give <productname>Hibernate Search </"
+"productname> an implementation of your expected <emphasis>object to String</"
+"emphasis> bridge. To do so you need to implements the <literal>org.hibernate."
+"search.bridge.StringBridge</literal> interface"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:425
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Padding Integer bridge.\n"
+"                                        * All numbers will be padded with 0 "
+"to match 5 digits\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class PaddedIntegerBridge "
+"implements <emphasis role=\"bold\">StringBridge</emphasis> {\n"
+"                                        \n"
+"                                        private int PADDING = 5;\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"String objectToString(Object object)</emphasis> {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"PADDING) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; PADDING ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:427
+#, no-c-format
+msgid ""
+"Then any property or field can use this bridge thanks to the "
+"<literal>@FieldBridge</literal> annotation"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:430
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">@FieldBridge(impl = PaddedIntegerBridge.class)</"
+"emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:432
+#, no-c-format
+msgid ""
+"Parameters can be passed to the Bridge implementation making it more "
+"flexible. The Bridge implementation implements a "
+"<classname>ParameterizedBridge</classname> interface, and the parameters are "
+"passed through the <literal>@FieldBridge</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:438
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements StringBridge, <emphasis\n"
+"                                                                                role="
+"\"bold\">ParameterizedBridge</emphasis> {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"setParameterValues(Map parameters)</emphasis> {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        <emphasis role=\"bold\">params = "
+"@Parameter(name=\"padding\", value=\"10\")</emphasis>\n"
+"                                        )\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:440
+#, no-c-format
+msgid ""
+"The <classname>ParameterizedBridge</classname> interface can be implemented "
+"by <classname>StringBridge</classname> , <classname>TwoWayStringBridge</"
+"classname> , <classname>FieldBridge</classname> implementations (see bellow)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:446
+#, no-c-format
+msgid ""
+"If you expect to use your bridge implementation on for an id property (i.e. "
+"annotated with <literal>@DocumentId</literal> ), you need to use a slightly "
+"extended version of <literal>StringBridge</literal> named "
+"<classname>TwoWayStringBridge</classname> . <literal>Hibernate Search </"
+"literal> needs to read the string representation of the identifier and "
+"generate the object out of it. There is not difference in the way the "
+"<literal>@FieldBridge</literal> annotation is used."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:455
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements TwoWayStringBridge, "
+"ParameterizedBridge {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"Object stringToObject(String stringValue)</emphasis> {\n"
+"                                        return new Integer(stringValue);\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //id property\n"
+"                                        @DocumentId\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        params = @Parameter(name=\"padding"
+"\", value=\"10\") \n"
+"                                        private Integer id;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:457
+#, no-c-format
+msgid ""
+"It is critically important for the two-way process to be idempotent (i.e. "
+"object = stringToObject( objectToString( object ) ) )."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:465
+#, no-c-format
+msgid "FieldBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:467
+#, no-c-format
+msgid ""
+"Some usecases requires more than a simple object to string translation when "
+"mapping a property to a Lucene index. To give you most of the flexibility "
+"you can also implement a bridge as a <classname>FieldBridge</classname> . "
+"This interface give you a property value and let you map it the way you want "
+"in your Lucene <classname>Document</classname> .This interface is very "
+"similar in its concept to the <productname>Hibernate</productname> "
+"<classname>UserType</classname> ."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:476
+#, no-c-format
+msgid ""
+"You can for example store a given property in two different document fields"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:479
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Store the date in 3 different "
+"field year, month, day\n"
+"                                        * to ease Range Query per year, "
+"month or day\n"
+"                                        * (e.g. get all the elements of "
+"December for the last 5 years)\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class DateSplitBridge "
+"implements FieldBridge {\n"
+"                                        private final static TimeZone GMT = "
+"TimeZone.getTimeZone(\"GMT\");\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"set(String name, Object value, Document document, Field.Store\n"
+"                                                store, Field.Index index, "
+"Float boost) {\n"
+"                                        </emphasis>\n"
+"                                        Date date = (Date) value;\n"
+"                                        Calendar cal = GregorianCalendar."
+"getInstance( GMT );\n"
+"                                        cal.setTime( date );\n"
+"                                        int year = cal.get( Calendar."
+"YEAR );\n"
+"                                        int month = cal.get( Calendar."
+"MONTH ) + 1;\n"
+"                                        int day = cal.get( Calendar."
+"DAY_OF_MONTH );\n"
+"                                        //set year\n"
+"                                        Field field = new Field( name + \"."
+"year\", String.valueOf(year), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set month and pad it if needed\n"
+"                                        field = new Field( name + \".month"
+"\", month &lt; 10 ? \"0\" : \"\" + String.valueOf(month), store, index);\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set day and pad it if needed\n"
+"                                        field = new Field( name + \".day\", "
+"day &lt; 10 ? \"0\" : \"\" + String.valueOf(day), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        <emphasis role=\"bold\">@FieldBridge"
+"(impl = DateSplitBridge.class)</emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:484
+#, no-c-format
+msgid "@ClassBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:486
+#, no-c-format
+msgid ""
+"It is sometimes useful to combine more than one property of a given entity "
+"and index this combination in a specific way into the Lucene index. The "
+"<classname>@ClassBridge</classname> and <classname>@ClassBridges</classname> "
+"annotations can be defined at the class level (as opposed to the property "
+"level). In this case the custom field bridge implementation receives the "
+"entity instance as the value parameter instead of a particular property."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:494
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                        @Indexed\n"
+"                                        <emphasis role=\"bold"
+"\">@ClassBridge</emphasis>(name=\"branchnetwork\",\n"
+"                                        index=Index.TOKENIZED,\n"
+"                                        store=Store.YES,\n"
+"                                        impl = <emphasis role=\"bold"
+"\">CatFieldsClassBridge.class</emphasis>,\n"
+"                                        params = @Parameter( name=\"sepChar"
+"\", value=\" \" ) )\n"
+"                                        public class Department {\n"
+"                                        private int id;\n"
+"                                        private String network;\n"
+"                                        private String branchHead;\n"
+"                                        private String branch;\n"
+"                                        private Integer maxEmployees;\n"
+"                                        ...\n"
+"                                        }\n"
+"                                        \n"
+"                                        public class CatFieldsClassBridge "
+"implements FieldBridge, ParameterizedBridge {\n"
+"                                        \n"
+"                                        private String sepChar;\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        this.sepChar = (String) parameters."
+"get( \"sepChar\" );\n"
+"                                        }\n"
+"                                        \n"
+"                                        public void set(String name, \n"
+"                                        Object value, //the department "
+"instance (entity) in this case\n"
+"                                        Document document, //the Lucene "
+"document \n"
+"                                        Field.Store store, Field.Index "
+"index, Float boost) {\n"
+"                                        // In this particular class the name "
+"of the new field was passed\n"
+"                                        // from the name field of the "
+"ClassBridge Annotation. This is not\n"
+"                                        // a requirement. It just works that "
+"way in this instance. The\n"
+"                                        // actual name could be supplied by "
+"hard coding it below.\n"
+"                                        Department dep = (Department) "
+"value;\n"
+"                                        String fieldValue1 = dep.getBranch"
+"();\n"
+"                                        if ( fieldValue1 == null ) {\n"
+"                                        fieldValue1 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue2 = dep.getNetwork"
+"();\n"
+"                                        if ( fieldValue2 == null ) {\n"
+"                                        fieldValue2 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue = fieldValue1 + "
+"sepChar + fieldValue2;\n"
+"                                        Field field = new Field( name, "
+"fieldValue, store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:496
+#, no-c-format
+msgid ""
+"In this example, the particular <classname>CatFieldsClassBridge</classname> "
+"is applied to the <literal>department</literal> instance, the field bridge "
+"then concatenate both branch and network and index the concatenation."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Optimize.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Optimize.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Optimize.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,210 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Optimize.xml:6
+#, no-c-format
+msgid "Index Optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:8
+#, no-c-format
+msgid ""
+"From time to time, the Lucene index needs to be optimized. The process is "
+"essentially a defragmentation: until the optimization occurs, deleted "
+"documents are just marked as such, no physical deletion is applied, the "
+"optimization can also adjust the number of files in the Lucene Directory."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:16
+#, no-c-format
+msgid ""
+"The optimization speeds up searches but in no way speeds up indexation "
+"(update). During an optimization, searches can be performed (but will most "
+"likely be slowed down), and all index updates will be stopped. Prefer "
+"optimizing:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:25
+#, no-c-format
+msgid "on an idle system or when the searches are less frequent"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:29
+#, no-c-format
+msgid ""
+"after a lot of index modifications (doing so before will not speed up the "
+"indexation process)"
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:35
+#, no-c-format
+msgid "Automatic optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:37
+#, no-c-format
+msgid "Hibernate Search can optimize automatically an index after:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:41
+#, no-c-format
+msgid "a certain amount of operations have been applied (insertion, deletion)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:46
+#, no-c-format
+msgid "or a certain amount of transactions have been applied"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:50
+#, no-c-format
+msgid "The configuration can be global or defined at the index level:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:53
+#, no-c-format
+msgid ""
+"hibernate.search.default.optimizer.operation_limit.max = 1000\n"
+"                        hibernate.search.default.optimizer.transaction_limit."
+"max = 100\n"
+"                        \n"
+"                        hibernate.search.Animal.optimizer.transaction_limit."
+"max = 50"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:55
+#, no-c-format
+msgid ""
+"An optimization will be triggered to the <literal>Animal</literal> index as "
+"soon as either:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:60
+#, no-c-format
+msgid "the number of addition and deletion reaches 1000"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:64
+#, no-c-format
+msgid ""
+"the number of transactions reaches 50 (<command>hibernate.search.Animal."
+"optimizer.transaction_limit.max</command> having priority over "
+"<command>hibernate.search.default.optimizer.transaction_limit.max</command>)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:71
+#, no-c-format
+msgid ""
+"If none of these parameters are defined, not optimization is processed "
+"automatically."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:76
+#, no-c-format
+msgid "Manual optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:78
+#, no-c-format
+msgid ""
+"You can programmatically optimize (defragment) a Lucene index from Hibernate "
+"Search through the <classname>SearchFactory</classname>"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:81
+#, no-c-format
+msgid ""
+"searchFactory.optimize(Order.class);\n"
+"                        \n"
+"                        searchFactory.optimize();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:83
+#, no-c-format
+msgid ""
+"The first example re-index the Lucene index holding <classname>Order</"
+"classname>s, the second, optimize all indexes."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:86
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> can be accessed from a "
+"<classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:89
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:91
+#, no-c-format
+msgid ""
+"Note that <literal>searchFactory.optimize()</literal> has no effect on a JMS "
+"backend. You must apply the optimize operation on the Master node."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:97
+#, no-c-format
+msgid "Adjusting optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:99
+#, no-c-format
+msgid ""
+"Apache Lucene has a few parameters to influence how optimization is "
+"performed. Hibernate Search expose those parameters."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:102
+#, no-c-format
+msgid ""
+"Further index optimization parameters include <literal>hibernate.search."
+"[default|&lt;indexname&gt;].merge_factor</literal>, <literal>hibernate."
+"search.[default|&lt;indexname&gt;].max_merge_docs</literal> and "
+"<literal>hibernate.search.[default|&lt;indexname&gt;].max_buffered_docs</"
+"literal> - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Preface.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Preface.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Preface.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Query.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Query.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Query.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1058 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Query.xml:6
+#, no-c-format
+msgid "Query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:8
+#, no-c-format
+msgid ""
+"The second most important capability of Hibernate Search is the ability to "
+"execute a Lucene query and retrieve entities managed by an Hibernate "
+"session, providing the power of Lucene without living the Hibernate "
+"paradigm, and giving another dimension to the Hibernate classic search "
+"mechanisms (HQL, Criteria query, native SQL query)."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:14
+#, no-c-format
+msgid ""
+"To access the <productname>Hibernate Search</productname> querying "
+"facilities, you have to use an Hibernate <classname>FullTextSession</"
+"classname> . A Search Session wraps a regular <classname>org.hibernate."
+"Session</classname> to provide query and indexing capabilities."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:20
+#, no-c-format
+msgid ""
+"Session session = sessionFactory.openSession();\n"
+"                ...\n"
+"                FullTextSession fullTextSession = Search."
+"createFullTextSession(session);"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:22
+#, no-c-format
+msgid "The search facility is built on native Lucene queries."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:24
+#, no-c-format
+msgid ""
+"org.apache.lucene.queryParser.QueryParser parser = new QueryParser(\"title"
+"\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );\n"
+"                </emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.list(); //return a list of "
+"managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:26
+#, no-c-format
+msgid ""
+"The Hibernate query built on top of the Lucene query is a regular "
+"<literal>org.hibernate.Query</literal> , you are in the same paradigm as the "
+"other Hibernate query facilities (HQL, Native or Criteria). The regular "
+"<literal>list()</literal> , <literal>uniqueResult()</literal> , "
+"<literal>iterate()</literal> and <literal>scroll()</literal> can be used."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:33
+#, no-c-format
+msgid ""
+"For people using Java Persistence (aka EJB 3.0 Persistence) APIs of "
+"Hibernate, the same extensions exist:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:36
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                \n"
+"                FullTextEntityManager fullTextEntityManager = \n"
+"                org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                \n"
+"                ...\n"
+"                org.apache.lucene.queryParser.QueryParser parser = new "
+"QueryParser(\"title\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">javax.persistence.Query "
+"fullTextQuery = fullTextEntityManager.createFullTextQuery( luceneQuery );</"
+"emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.getResultList(); //return a list "
+"of managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:38
+#, no-c-format
+msgid ""
+"The following examples show the Hibernate APIs but the same example can be "
+"easily rewritten with the Java Persistence API by just adjusting the way the "
+"FullTextQuery is retrieved."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:43
+#, no-c-format
+msgid "Building queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:45
+#, no-c-format
+msgid ""
+"Hibernate Search queries are built on top of Lucene queries. It gives you a "
+"total freedom on the kind of Lucene queries you are willing to execute. "
+"However, once built, Hibernate Search abstract the query processing from "
+"your application using org.hibernate.Query as your primary query "
+"manipulation API."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:52
+#, no-c-format
+msgid "Building a Lucene query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:54
+#, no-c-format
+msgid ""
+"This subject is generally speaking out of the scope of this documentation. "
+"Please refer to the Lucene documentation or Lucene In Action."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:60
+#, no-c-format
+msgid "Building a Hibernate Search query"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:63
+#, no-c-format
+msgid "Generality"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:65
+#, no-c-format
+msgid ""
+"Once the Lucene query is built, it needs to be wrapped into an Hibernate "
+"Query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession( session );\n"
+"                                        org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:70
+#, no-c-format
+msgid ""
+"If not specified otherwise, the query will be executed against all indexed "
+"entities, potentially returning all types of indexed classes. It is advised, "
+"from a performance point of view, to restrict the returned types:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:75
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        //or\n"
+"                                        fullTextQuery = fullTextSession."
+"createFullTextQuery( luceneQuery, Item.class, Actor.class );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:77
+#, no-c-format
+msgid ""
+"The first example returns only matching customers, the second returns "
+"matching actors and items."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:82
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:84
+#, no-c-format
+msgid ""
+"It is recommended to restrict the number of returned objects per query. It "
+"is a very common use case as well, the user usually navigate from one page "
+"to an other. The way to define pagination is exactly the way you would "
+"define pagination in a plain HQL or Criteria query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:90
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        fullTextQuery.setFirstResult(15); //"
+"start from the 15th element\n"
+"                                        fullTextQuery.setMaxResults(10); //"
+"return 10 elements"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:93
+#, no-c-format
+msgid ""
+"It is still possible to get the total number of matching elements regardless "
+"of the pagination. See <command>getResultSize()</command> below"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:100
+#, no-c-format
+msgid "Sorting"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:102
+#, no-c-format
+msgid ""
+"Apache Lucene provides a very flexible and powerful way to sort results. "
+"While the default sorting (by relevance) is appropriate most of the time, it "
+"can interesting to sort by one or several properties."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:107
+#, no-c-format
+msgid ""
+"Inject the Lucene Sort object to apply a Lucene sorting strategy to an "
+"Hibernate Search."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:110
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery( query, "
+"Book.class );\n"
+"                                        org.apache.lucene.search.Sort sort = "
+"new Sort(new SortField(\"title\"));\n"
+"                                        <emphasis role=\"bold\">query.setSort"
+"(sort);</emphasis>\n"
+"                                        List results = query.list();"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:112
+#, no-c-format
+msgid ""
+"One can notice the <classname>FullTextQuery</classname> interface which is a "
+"sub interface of <classname>org.hibernate.Query</classname>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:116
+#, no-c-format
+msgid "Fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:120
+#, no-c-format
+msgid "Fetching strategy"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:122
+#, no-c-format
+msgid ""
+"When you restrict the return types to one class, Hibernate Search loads the "
+"objects using a single query. It also respects the static fetching strategy "
+"defined in your domain model."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:126
+#, no-c-format
+msgid ""
+"It is often useful, however, to refine the fetching strategy for a specific "
+"use case."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:129
+#, no-c-format
+msgid ""
+"Criteria criteria = s.createCriteria( Book.class ).setFetchMode( \"authors"
+"\", FetchMode.JOIN );\n"
+"                                        s.createFullTextQuery( luceneQuery )."
+"setCriteriaQuery( criteria );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:131
+#, no-c-format
+msgid ""
+"In this example, the query will return all Books matching the luceneQuery. "
+"The authors collection will be loaded from the same query using an SQL outer "
+"join."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:135
+#, no-c-format
+msgid ""
+"When defining a criteria query, it is not needed to restrict the entity "
+"types returned while creating the Hibernate Search query from the full text "
+"session: the type is guessed from the criteria query itself. Only fetch mode "
+"can be adjusted, refrain from applying any other restriction."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:141
+#, no-c-format
+msgid ""
+"One cannot use <command>setCriteriaQuery</command> if more than one entity "
+"type is expected to be returned."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:146
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:148
+#, no-c-format
+msgid ""
+"For some use cases, returning the domain object (graph) is overkill. Only a "
+"small subset of the properties is necessary. Hibernate Search allows you to "
+"return a subset of properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:152
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( \"id\", \"summary\", \"body\", \"mainAuthor.name\" )</"
+"emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        Integer id = firstResult[0];\n"
+"                                        String summary = firstResult[1];\n"
+"                                        String body = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:154
+#, no-c-format
+msgid ""
+"Hibernate Search extracts the properties from the Lucene index and convert "
+"them back to their object representation, returning a list of "
+"<classname>Object[]</classname>. Projections avoid a potential database "
+"round trip (useful if the query response time is critical), but has some "
+"constraints:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:162
+#, no-c-format
+msgid ""
+"the properties projected must be stored in the index (<literal>@Field"
+"(store=Store.YES)</literal>), which increase the index size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:168
+#, no-c-format
+msgid ""
+"the properties projected must use a <literal>FieldBridge</literal> "
+"implementing <classname>org.hibernate.search.bridge.TwoWayFieldBridge</"
+"classname> or <literal>org.hibernate.search.bridge.TwoWayStringBridge</"
+"literal>, the latter being the simpler version. All Hibernate Search built-"
+"in types are two-way."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:178
+#, no-c-format
+msgid ""
+"Projection is useful for another kind of usecases. Lucene provides some "
+"metadata information to the user about the results. By using some special "
+"placeholders, the projection mechanism can retrieve them:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:183
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( FullTextQuery.SCORE, FullTextQuery.BOOST, FullTextQuery."
+"THIS, \"mainAuthor.name\" )</emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        float score = firstResult[0];\n"
+"                                        float boost = firstResult[1];\n"
+"                                        Book book = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:185
+#, no-c-format
+msgid ""
+"You can mix and match regular fields and special placeholders. Here is the "
+"list of available placeholders:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:190
+#, no-c-format
+msgid ""
+"FullTextQuery.THIS: returns the initialized and managed entity (as a non "
+"projected query would have done)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:195
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT: returns the Lucene Document related to the object "
+"projected"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:200
+#, no-c-format
+msgid ""
+"FullTextQuery.SCORE: returns the document score in the query. The score is "
+"guaranteed to be between 0 and 1 but the highest score is not necessarily "
+"equals to 1. Scores are handy to compare one result against an other for a "
+"given query but are useless when comparing the result of different queries."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:208
+#, no-c-format
+msgid "FullTextQuery.BOOST: the boost value of the Lucene Document"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:213
+#, no-c-format
+msgid "FullTextQuery.ID: the id property value of the projected object"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:218
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT_ID: the Lucene document id. Careful, Lucene document "
+"id can change overtime between two different IndexReader opening (this "
+"feature is experimental)"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:228
+#, no-c-format
+msgid "Retrieving the results"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:230
+#, no-c-format
+msgid ""
+"Once the Hibernate Search query is built, executing it is in no way "
+"different than executing a HQL or Criteria query. The same paradigm and "
+"object semantic apply. All the common operations are available: <command>list"
+"()</command>, <command>uniqueResult()</command>, <command>iterate()</"
+"command>, <command>scroll()</command>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:238
+#, no-c-format
+msgid "Performance considerations"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:240
+#, no-c-format
+msgid ""
+"If you expect a reasonable number of results (for example using pagination) "
+"and expect to work on all of them, <command>list()</command> or "
+"<command>uniqueResult()</command> are recommended. <command>list()</command> "
+"work best if the entity <literal>batch-size</literal> is set up properly. "
+"Note that Hibernate Search has to process all Lucene Hits elements (within "
+"the pagination) when using <command>list()</command> , <command>uniqueResult"
+"()</command> and <command>iterate()</command>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:251
+#, no-c-format
+msgid ""
+"If you wish to minimize Lucene document loading, <command>scroll()</command> "
+"is more appropriate. Don't forget to close the <classname>ScrollableResults</"
+"classname> object when you're done, since it keeps Lucene resources. If you "
+"expect to use <command>scroll</command> but wish to load objects in batch, "
+"you can use <command>query.setFetchSize()</command>: When an object is "
+"accessed, and if not already loaded, Hibernate Search will load the next "
+"<literal>fetchSize</literal> objects in one pass."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:260
+#, no-c-format
+msgid "Pagination is a preferred method over scrolling though."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:264
+#, no-c-format
+msgid "Result size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:266
+#, no-c-format
+msgid "It is sometime useful to know the total number of matching documents:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:271
+#, no-c-format
+msgid "for the Google-like feature 1-10 of about 888,000,000"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:275
+#, no-c-format
+msgid "to implement a fast pagination navigation"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:279
+#, no-c-format
+msgid ""
+"to implement a multi step search engine (adding approximation if the "
+"restricted query return no or not enough results)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:284
+#, no-c-format
+msgid "But it would be costly to retrieve all the matching documents."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:287
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to retrieve the total number of matching "
+"documents regardless of the pagination parameters. Even more interesting, "
+"you can retrieve the number of matching elements without triggering a single "
+"object load."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:292
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the number of matching books without "
+"loading a single one\n"
+"                                \n"
+"                                org.hibernate.search.FullTextQuery query = s."
+"createFullTextQuery( luceneQuery, Book.class );\n"
+"                                query.setMaxResult(10);\n"
+"                                List results = query.list();\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the total number of matching books "
+"regardless of pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:295
+#, no-c-format
+msgid ""
+"Like Google, the number of results is approximate if the index is not fully "
+"up-to-date with the database (asynchronous cluster for example)."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:302
+#, no-c-format
+msgid "ResultTransformer"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:304
+#, no-c-format
+msgid ""
+"Especially when using projection, the data structure returned by a query (an "
+"object array in this case), is not always matching the application needs. It "
+"is possible to apply a <classname>ResultTransformer</classname> operation "
+"post query to match the targeted data structure:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:310
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                query.setProjection( \"title\", \"mainAuthor."
+"name\" );\n"
+"                                \n"
+"                                <emphasis role=\"bold\">query."
+"setResultTransformer( \n"
+"                                        new "
+"StaticAliasToBeanResultTransformer( BookView.class, \"title\", \"author"
+"\" ) \n"
+"                                        );</emphasis>\n"
+"                                List&lt;BookView&gt; results = (List&lt;"
+"BookView&gt;) query.list();\n"
+"                                for(BookView view : results) {\n"
+"                                log.info( \"Book: \" + view.getTitle() + \", "
+"\" + view.getAuthor() );\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:312
+#, no-c-format
+msgid ""
+"Examples of <classname>ResultTransformer</classname> implementations can be "
+"found in the Hibernate Core codebase."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:318
+#, no-c-format
+msgid "Filters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:320
+#, no-c-format
+msgid ""
+"Apache Lucene has a powerful feature that allows to filters results from a "
+"query according to a custom filtering process. This is a very powerful way "
+"to apply some data restrictions after a query, especially since filters can "
+"be cached and reused. Some interesting usecases are:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:328
+#, no-c-format
+msgid "security"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:332
+#, no-c-format
+msgid "temporal data (e.g.. view only last month's data)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:336
+#, no-c-format
+msgid "population filter (e.g. search limited to a given category)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:341
+#, no-c-format
+msgid "and many more"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:345
+#, no-c-format
+msgid ""
+"Hibernate Search pushes the concept further by introducing the notion of "
+"parameterizable named filters which are transparently cached. For people "
+"familiar with the notion of Hibernate Core filters, the API is very similar."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:350
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"bestDriver\");\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")."
+"setParameter( \"login\", \"andre\" );\n"
+"                        fullTextQuery.list(); //returns only best drivers "
+"where andre has credentials"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:352
+#, no-c-format
+msgid ""
+"In this example we enabled 2 filters on top of this query. You can enable "
+"(or disable) as many filters as you want."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:355
+#, no-c-format
+msgid ""
+"Declaring filters is done through the <classname>@FullTextFilterDef</"
+"classname> annotation. This annotation can be on any <literal>@Indexed</"
+"literal> entity regardless of the filter operation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:360
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDefs( {\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"bestDriver\", impl = BestDriversFilter.class, cache=false)</emphasis>, //"
+"actual Filter implementation\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"security\", impl = SecurityFilterFactory.class)</emphasis> //Filter "
+"factory with parameters\n"
+"                        })\n"
+"                        public class Driver { ... }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:362
+#, no-c-format
+msgid "Each named filter points to an actual filter implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:364
+#, no-c-format
+msgid ""
+"public class BestDriversFilter extends <emphasis\n"
+"                                                                                role="
+"\"bold\">org.apache.lucene.search.Filter</emphasis> {\n"
+"                        \n"
+"                        public BitSet bits(IndexReader reader) throws "
+"IOException {\n"
+"                        BitSet bitSet = new BitSet( reader.maxDoc() );\n"
+"                        TermDocs termDocs = reader.termDocs( new Term(\"score"
+"\", \"5\") );\n"
+"                        while ( termDocs.next() ) {\n"
+"                        bitSet.set( termDocs.doc() );\n"
+"                        }\n"
+"                        return bitSet;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:366
+#, no-c-format
+msgid ""
+"<classname>BestDriversFilter</classname> is an example of a simple Lucene "
+"filter that will filter all results to only return drivers whose score is 5. "
+"The filters must have a no-arg constructor when referenced in a "
+"<literal>FulltextFilterDef.impl</literal>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:371
+#, no-c-format
+msgid ""
+"The <literal>cache</literal> flag, defaulted to <literal>true</literal>, "
+"tells Hibernate Search to search the filter in its internal cache and reuses "
+"it if found."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:375
+#, no-c-format
+msgid ""
+"Note that, usually, filter using the <classname>IndexReader</classname> are "
+"wrapped in a Lucene <classname>CachingWrapperFilter</classname> to benefit "
+"from some caching speed improvement. If your Filter creation requires "
+"additional steps or if the filter you are willing to use does not have a no-"
+"arg constructor, you can use the factory pattern:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:382
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDef(name = \"bestDriver\", impl = "
+"BestDriversFilterFactory.class) //Filter factory\n"
+"                        public class Driver { ... }\n"
+"                        \n"
+"                        public class BestDriversFilterFactory {\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Factory</emphasis>\n"
+"                        public Filter getFilter() {\n"
+"                        //some additional steps to cache the filter results "
+"per IndexReader\n"
+"                        Filter bestDriversFilter = new BestDriversFilter();\n"
+"                        return new CachingWrapperFilter(bestDriversFilter);\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:384
+#, no-c-format
+msgid ""
+"Hibernate Search will look for a <literal>@Factory</literal> annotated "
+"method and use it to build the filter instance. The factory must have a no-"
+"arg constructor. For people familiar with JBoss Seam, this is similar to the "
+"component factory pattern, but the annotation is different!"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:390
+#, no-c-format
+msgid ""
+"Named filters comes in handy where the filters have parameters. For example "
+"a security filter needs to know which credentials you are willing to filter "
+"by:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:394
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")"
+"<emphasis role=\"bold\">.setParameter( \"level\", 5 )</emphasis>;"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:396
+#, no-c-format
+msgid ""
+"Each parameter name should have an associated setter on either the filter or "
+"filter factory of the targeted named filter definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:399
+#, no-c-format
+msgid ""
+"public class SecurityFilterFactory {\n"
+"                        private Integer level;\n"
+"                        \n"
+"                        /**\n"
+"                        * injected parameter\n"
+"                        */\n"
+"                        <emphasis role=\"bold\">public void setLevel(Integer "
+"level)</emphasis> {\n"
+"                        this.level = level;\n"
+"                        }\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Key\n"
+"                                public FilterKey getKey()</emphasis> {\n"
+"                        StandardFilterKey key = new StandardFilterKey();\n"
+"                        key.addParameter( level );\n"
+"                        return key;\n"
+"                        }\n"
+"                        \n"
+"                        @Factory\n"
+"                        public Filter getFilter() {\n"
+"                        Query query = new TermQuery( new Term(\"level\", "
+"level.toString() ) );\n"
+"                        return new CachingWrapperFilter( new "
+"QueryWrapperFilter(query) );\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:401
+#, no-c-format
+msgid ""
+"Note the method annotated <classname>@Key</classname> and returning a "
+"<classname>FilterKey</classname> object. The returned object has a special "
+"contract: the key object must implement equals / hashcode so that 2 keys are "
+"equals if and only if the given Filter types are the same and the set of "
+"parameters are the same. In other words, 2 filter keys are equal if and only "
+"if the filters from which the keys are generated can be interchanged. The "
+"key object is used as a key in the cache mechanism."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:410
+#, no-c-format
+msgid "<classname>@Key</classname> methods are needed only if:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:414
+#, no-c-format
+msgid "you enabled the filter caching system (enabled by default)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:419
+#, no-c-format
+msgid "your filter has parameters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:423
+#, no-c-format
+msgid ""
+"In most cases, using the <literal>StandardFilterKey</literal> implementation "
+"will be good enough. It delegates the equals/hashcode implementation to each "
+"of the parameters equals and hashcode methods."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:428
+#, no-c-format
+msgid ""
+"Why should filters be cached? There are two area where filter caching shines:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:433
+#, no-c-format
+msgid ""
+"the system does not update the targeted entity index often (in other words, "
+"the IndexReader is reused a lot)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:438
+#, no-c-format
+msgid ""
+"the Filter BitSet is expensive to compute (compared to the time spent to "
+"execute the query)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:443
+#, no-c-format
+msgid ""
+"Cache is enabled by default and use the notion of SoftReferences to dispose "
+"memory when needed. To adjust the size of the hard reference cache, use "
+"<literal>hibernate.search.filter.cache_strategy.size</literal> (defaults to "
+"128). Don't forget to use a <classname>CachingWrapperFilter</classname> when "
+"the filter is cacheable and the Filter's bits methods makes use of "
+"IndexReader."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:450
+#, no-c-format
+msgid ""
+"For advance use of filter caching, you can implement your own "
+"<classname>FilterCachingStrategy</classname>. The classname is defined by "
+"<literal>hibernate.search.filter.cache_strategy</literal>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:456
+#, no-c-format
+msgid "Optimizing the query process"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:458
+#, no-c-format
+msgid "Query performance depends on several criteria:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:462
+#, no-c-format
+msgid "the Lucene query itself: read the literature on this subject"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:467
+#, no-c-format
+msgid ""
+"the number of object loaded: use pagination (always ;-) ) or index "
+"projection (if needed)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:472
+#, no-c-format
+msgid ""
+"the way Hibernate Search interacts with the Lucene readers: defines the "
+"appropriate <xref linkend=\"Hibernate_Search-Architecture-Reader_Strategy\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:480
+#, no-c-format
+msgid "Native Lucene Queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:482
+#, no-c-format
+msgid ""
+"If you wish to use some specific features of Lucene, you can always run "
+"Lucene specific queries. Check <xref linkend=\"Hibernate_Search-Lucene_Native"
+"\"/> for more informations."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Revision_History.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Revision_History.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/pt-BR/Revision_History.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,33 @@
+# Language pt-BR translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Danielle</firstname> <surname>Coulson</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Content reformat"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Architecture.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Architecture.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Architecture.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,367 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture.xml:6
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:9
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:11
+#, no-c-format
+msgid ""
+"Hibernate Search consists of an indexing and an index search engine. Both "
+"are backed by Apache Lucene."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:14
+#, no-c-format
+msgid ""
+"When an entity is inserted, updated or removed in/from the database, "
+"Hibernate Search keeps track of this event (through the Hibernate event "
+"system) and schedules an index update. All the index updates are handled for "
+"you without you having to use the Apache Lucene APIs (see <xref linkend="
+"\"Hibernate_Search-Configuration-Event\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:19
+#, no-c-format
+msgid ""
+"To interact with Apache Lucene indexes, Hibernate Search has the notion of "
+"<classname>DirectoryProvider</classname>s. A directory provider will manage "
+"a given Lucene <classname>Directory</classname> type. You can configure "
+"directory providers to adjust the directory target (see <xref linkend="
+"\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:24
+#, no-c-format
+msgid ""
+"Hibernate Search can also use the Lucene index to search an entity and "
+"return a list of managed entities saving you the tedious object to Lucene "
+"document mapping. The same persistence context is shared between Hibernate "
+"and Hibernate Search; as a matter of fact, the Search Session is built on "
+"top of the Hibernate Session. The application code use the unified "
+"<classname>org.hibernate.Query</classname> or <classname>javax.persistence."
+"Query</classname> APIs exactly the way a HQL, JPA-QL or native queries would "
+"do."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:33
+#, no-c-format
+msgid ""
+"To be more efficient, Hibernate Search batches the write interactions with "
+"the Lucene index. There is currently two types of batching depending on the "
+"expected scope."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:37
+#, no-c-format
+msgid ""
+"Outside a transaction, the index update operation is executed right after "
+"the actual database operation. This scope is really a no scoping setup and "
+"no batching is performed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:41
+#, no-c-format
+msgid ""
+"It is however recommended, for both your database and Hibernate Search, to "
+"execute your operation in a transaction be it JDBC or JTA. When in a "
+"transaction, the index update operation is scheduled for the transaction "
+"commit and discarded in case of transaction rollback. The batching scope is "
+"the transaction. There are two immediate benefits:"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:50
+#, no-c-format
+msgid ""
+"Performance: Lucene indexing works better when operation are executed in "
+"batch."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:55
+#, no-c-format
+msgid ""
+"ACIDity: The work executed has the same scoping as the one executed by the "
+"database transaction and is executed if and only if the transaction is "
+"committed."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:60
+#, no-c-format
+msgid ""
+"Disclaimer, the work in not ACID in the strict sense of it, but ACID "
+"behavior is rarely useful for full text search indexes since they can be "
+"rebuilt from the source at any time."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:67
+#, no-c-format
+msgid ""
+"You can think of those two scopes (no scope vs transactional) as the "
+"equivalent of the (infamous) auto-commit vs transactional behavior. From a "
+"performance perspective, the <emphasis>in transaction</emphasis> mode is "
+"recommended. The scoping choice is made transparently: Hibernate Search "
+"detects the presence of a transaction and adjust the scoping."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:74
+#, no-c-format
+msgid ""
+"Hibernate Search works perfectly fine in the Hibernate / EntityManager long "
+"conversation pattern aka. atomic conversation."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:80
+#, no-c-format
+msgid ""
+"Depending on user demand, additional scoping will be considered, the "
+"pluggability mechanism being already in place."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:87
+#, no-c-format
+msgid "Back End"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:89
+#, no-c-format
+msgid ""
+"Hibernate Search offers the ability to let the scoped work being processed "
+"by different back ends. Two back ends are provided out of the box for two "
+"different scenarios."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:96
+#, no-c-format
+msgid ""
+"Hibernate Search is an extensible architecture. While not yet part of the "
+"public API, plugging a third party back end is possible. Feel free to drop "
+"ideas to <literal>hibernate-dev at lists.jboss.org</literal>."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:102
+#, no-c-format
+msgid "Lucene"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:104
+#, no-c-format
+msgid ""
+"In this mode, all index update operations applied on a given node (JVM) will "
+"be executed to the Lucene directories (through the directory providers) by "
+"the same node. This mode is typically used in non clustered environment or "
+"in clustered environments where the directory store is shared."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:120
+#, no-c-format
+msgid ""
+"This mode targets non clustered applications, or clustered applications "
+"where the Directory is taking care of the locking strategy."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:126
+#, no-c-format
+msgid ""
+"The main advantage is simplicity and immediate visibility of the changes in "
+"Lucene queries (a requirement is some applications)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:133
+#, no-c-format
+msgid "<title>JMS</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:135
+#, no-c-format
+msgid ""
+"All index update operations applied on a given node are sent to a JMS queue. "
+"A unique reader will then process the queue and update the master Lucene "
+"index. The master index is then replicated on a regular basis to the slave "
+"copies. This is known as the master / slaves pattern. The master is the sole "
+"responsible for updating the Lucene index. The slaves can accept read as "
+"well as write operations. However, they only process the read operation on "
+"their local index copy and delegate the update operations to the master."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:153
+#, no-c-format
+msgid ""
+"This mode targets clustered environments where throughput is critical, and "
+"index update delays are affordable. Reliability is ensured by the JMS "
+"provider and by having the slaves working on a local copy of the index."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:161
+#, no-c-format
+msgid "Work Execution"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:163
+#, no-c-format
+msgid ""
+"The indexing work (done by the back end) can be executed synchronously with "
+"the transaction commit (or update operation if out of transaction), or "
+"asynchronously."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:168
+#, no-c-format
+msgid "Synchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:170
+#, no-c-format
+msgid ""
+"This is the safe mode where the back end work is executed in concert with "
+"the transaction commit. Under highly concurrent environment, this can lead "
+"to throughput limitations (due to the Apache Lucene lock mechanism) and it "
+"can increase the system response time if the backend is significantly slower "
+"than the transactional process and if a lot of IO operations are involved."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:179
+#, no-c-format
+msgid "Asynchronous"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:181
+#, no-c-format
+msgid ""
+"This mode delegates the work done by the back end to a different thread. "
+"That way, throughput and response time are (to a certain extend) "
+"decorrelated from the back end performance. The drawback is that a small "
+"delay appears between the transaction commit and the index update and a "
+"small overhead is introduced to deal with thread management."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:187
+#, no-c-format
+msgid ""
+"It is recommended to use synchronous execution first and evaluate "
+"asynchronous execution if performance problems occur and after having set up "
+"a proper benchmark (i.e. not a lonely cowboy hitting the system in a "
+"completely unrealistic way)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:195
+#, no-c-format
+msgid "Reader Strategy"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:197
+#, no-c-format
+msgid ""
+"When executing a query, Hibernate Search interacts with the Apache Lucene "
+"indexes through a reader strategy. Choosing a reader strategy will depend on "
+"the profile of the application (frequent updates, read mostly, asynchronous "
+"index update etc). See also"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:204
+#, no-c-format
+msgid "Shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:206
+#, no-c-format
+msgid ""
+"With this strategy, Hibernate Search will share the same IndexReader, for a "
+"given Lucene index, across multiple queries and threads provided that the "
+"IndexReader is still up-to-date. If the IndexReader is not up-to-date, a new "
+"one is opened and provided. Generally speaking, this strategy provides much "
+"better performances than the <literal>not-shared</literal> strategy. It is "
+"especially true if the number of updates is much lower than the reads. This "
+"strategy is the default."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:217
+#, no-c-format
+msgid "Not-shared"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:219
+#, no-c-format
+msgid ""
+"Every time a query is executed, a Lucene IndexReader is opened. This "
+"strategy is not the most efficient since opening and warming up an "
+"IndexReader can be a relatively expensive operation."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:225
+#, no-c-format
+msgid "Custom"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:227
+#, no-c-format
+msgid ""
+"You can write your own reader strategy that suits your application needs by "
+"implementing <classname>org.hibernate.search.reader.ReaderProvider</"
+"classname>. The implementation must be thread safe."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:233
+#, no-c-format
+msgid ""
+"Some additional strategies are planned in future versions of Hibernate Search"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Author_Group.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Author_Group.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,28 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Batch_Index.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Batch_Index.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Batch_Index.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,211 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Batch_Index.xml:6
+#, no-c-format
+msgid "Manual Indexing"
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:9
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:11
+#, no-c-format
+msgid ""
+"It is sometimes useful to index an object even if this object is not "
+"inserted nor updated to the database. This is especially true when you want "
+"to build your index for the first time. You can achieve that goal using the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.index(customer);</"
+"emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:18
+#, no-c-format
+msgid ""
+"For maximum efficiency, Hibernate Search batches index operations and "
+"executes them at commit time (Note: you don't need to use <classname>org."
+"hibernate.Transaction</classname> in a JTA environment)."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:23
+#, no-c-format
+msgid ""
+"If you expect to index a lot of data, you need to be careful about memory "
+"consumption: since all documents are kept in a queue until the transaction "
+"commit, you can potentially face an <classname>OutOfMemoryException</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:28
+#, no-c-format
+msgid ""
+"To avoid that, you can set up the <literal>hibernate.search.worker."
+"batch_size</literal> property to a sensitive value: all index operations are "
+"queued until <literal>batch_size</literal> is reached. Every time "
+"<literal>batch_size</literal> is reached (or if the transaction is "
+"committed), the queue is processed (freeing memory) and emptied. Be aware "
+"that the changes cannot be rolled-back if the number of index elements goes "
+"beyond <literal>batch_size</literal>. Be also aware that the queue limits "
+"are also applied on regular transparent indexing (and not only when "
+"<literal>session.index()</literal> is used). That's why a sensitive "
+"<literal>batch_size</literal> value is expected."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:40
+#, no-c-format
+msgid ""
+"Other parameters which also can affect indexing time and memory consumption "
+"are <literal>hibernate.search.[default|&lt;indexname&gt;].batch."
+"merge_factor</literal> , <literal>hibernate.search.[default|&lt;"
+"indexname&gt;].batch.max_merge_docs</literal> and <literal>hibernate.search."
+"[default|&lt;indexname&gt;].batch.max_buffered_docs</literal> . These "
+"parameters are Lucene specific and Hibernate Search is just passing these "
+"parameters through - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:50
+#, no-c-format
+msgid ""
+"Here is an especially efficient way to index a given class (useful for index "
+"(re)initialization):"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:53
+#, no-c-format
+msgid ""
+"fullTextSession.setFlushMode(FlushMode.MANUAL);\n"
+"                fullTextSession.setCacheMode(CacheMode.IGNORE);\n"
+"                transaction = fullTextSession.beginTransaction();\n"
+"                //Scrollable results will avoid loading too many objects in "
+"memory\n"
+"                ScrollableResults results = fullTextSession.createCriteria"
+"( Email.class ).scroll(\n"
+"                ScrollMode.FORWARD_ONLY );\n"
+"                int index = 0;\n"
+"                while( results.next() ) {\n"
+"                index++;\n"
+"                fullTextSession.index( results.get(0) ); //index each "
+"element\n"
+"                if (index % batchSize == 0) s.clear(); //clear every "
+"batchSize since the queue is processed\n"
+"                }\n"
+"                transaction.commit();"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:55
+#, no-c-format
+msgid ""
+"It is critical that <literal>batchSize</literal> in the previous example "
+"matches the <literal>batch_size</literal> value described previously."
+msgstr ""
+
+#. Tag: title
+#: Batch_Index.xml:61
+#, no-c-format
+msgid "Purging"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:63
+#, no-c-format
+msgid ""
+"It is equally possible to remove an entity or all entities of a given type "
+"from a Lucene index without the need to physically remove them from the "
+"database. This operation is named purging and is done through the "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                for (Customer customer : customers) {\n"
+"                <emphasis role=\"bold\">fullTextSession.purge( Customer."
+"class, customer.getId() );</emphasis>\n"
+"                }\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:70
+#, no-c-format
+msgid ""
+"Purging will remove the entity with the given id from the Lucene index but "
+"will not touch the database."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:73
+#, no-c-format
+msgid ""
+"If you need to remove all entities of a given type, you can use the "
+"<command>purgeAll</command> method."
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_Index.xml:76
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                Transaction tx = fullTextSession.beginTransaction();\n"
+"                <emphasis role=\"bold\">fullTextSession.purgeAll( Customer."
+"class );</emphasis>\n"
+"                //optionally optimize the index\n"
+"                //fullTextSession.getSearchFactory().optimize( Customer."
+"class );\n"
+"                tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:78
+#, no-c-format
+msgid "It is recommended to optimize the index after such an operation."
+msgstr ""
+
+#. Tag: para
+#: Batch_Index.xml:82
+#, no-c-format
+msgid ""
+"Methods <command>index</command>, <command>purge</command> and "
+"<command>purgeAll</command> are available on "
+"<classname>FullTextEntityManager</classname> as well"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Book_Info.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Book_Info.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,54 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate Search Reference Guide CP04 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "Apache <trademark>Lucene</trademark> Integration"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:8
+#, no-c-format
+msgid ""
+"For use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 4 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is a Reference Guide to Hibernate Search for JBoss Enterprise "
+"Application Platform 4.3.0 CP04 FP01"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:24
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:29
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Configuration.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Configuration.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Configuration.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1155 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuration.xml:6
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:9
+#, no-c-format
+msgid "Directory Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:11
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. The Directory implementation can be customized, but Lucene "
+"comes bundled with a file system (<literal>FSDirectoryProvider</literal>) "
+"and a in memory (<literal>RAMDirectoryProvider</literal>) implementation. "
+"Hibernate Search has the notion of <literal>DirectoryProvider</literal> that "
+"handles the configuration and the initialization of the Lucene Directory."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:20
+#, no-c-format
+msgid ""
+"List of built-in Directory Providers in the namespace of org.hibernate."
+"search.store."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:25
+#, no-c-format
+msgid "Class"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:27 Configuration.xml:243 Configuration.xml:528
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:29
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:35
+#, no-c-format
+msgid "FSDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:37
+#, no-c-format
+msgid ""
+"File system based directory. The directory used will be &lt;indexBase&gt;/"
+"&lt; <literal>@Indexed.name</literal> &gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:41
+#, no-c-format
+msgid "<literal>indexBase</literal> : Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:42 Configuration.xml:60 Configuration.xml:85
+#, no-c-format
+msgid ""
+"<literal>indexName</literal>: override @Index.name (useful for sharded "
+"indexes)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:47
+#, no-c-format
+msgid "FSMasterDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:49
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider. It also copies the "
+"index to a source directory (aka copy directory) on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:52 Configuration.xml:77
+#, no-c-format
+msgid ""
+"The recommended value for the refresh period is (at least) 50% higher that "
+"the time to copy the information (default 3600 seconds - 60 minutes)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:53 Configuration.xml:79
+#, no-c-format
+msgid ""
+"Note that the copy is based on an incremental copy mechanism reducing the "
+"average copy time."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:55
+#, no-c-format
+msgid ""
+"DirectoryProvider typically used on the master node in a JMS back end "
+"cluster."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:56
+#, no-c-format
+msgid ""
+"<entry>DirectoryProvider typically used on slave nodes using a JMS back end."
+"</entry>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:59 Configuration.xml:84
+#, no-c-format
+msgid "<literal>indexBase</literal>: Base directory"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:62 Configuration.xml:87
+#, no-c-format
+msgid "<literal>sourceBase</literal>: Source (copy) base directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:63 Configuration.xml:88
+#, no-c-format
+msgid ""
+"<literal>source</literal>: Source directory suffix (default to "
+"<literal>@Indexed.name</literal>). The actual source directory name being "
+"<filename>&lt;sourceBase&gt;/&lt;source&gt;</filename>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:67 Configuration.xml:92
+#, no-c-format
+msgid ""
+"refresh: refresh period in second (the copy will take place every refresh "
+"seconds)."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:72
+#, no-c-format
+msgid "FSSlaveDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:74
+#, no-c-format
+msgid ""
+"File system based directory. Like FSDirectoryProvider, but retrieves a "
+"master version (source) on a regular basis. To avoid locking and "
+"inconsistent search results, 2 local copies are kept."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:81
+#, no-c-format
+msgid ""
+"<para>DirectoryProvider typically used on slave nodes using a JMS back end.</"
+"para>"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:97
+#, no-c-format
+msgid "RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:99
+#, no-c-format
+msgid ""
+"Memory based directory, the directory will be uniquely identified (in the "
+"same deployment unit) by the <literal>@Indexed.name</literal> element"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:103
+#, no-c-format
+msgid "none"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:109
+#, no-c-format
+msgid ""
+"If the built-in directory providers does not fit your needs, you can write "
+"your own directory provider by implementing the <classname>org.hibernate."
+"store.DirectoryProvider</classname> interface"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:114
+#, no-c-format
+msgid ""
+"Each indexed entity is associated to a Lucene index (an index can be shared "
+"by several entities but this is not usually the case). You can configure the "
+"index through properties prefixed by <command>hibernate.search.</"
+"command><replaceable>indexname</replaceable> . Default properties inherited "
+"to all indexes can be defined using the prefix <command>hibernate.search."
+"default.</command>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:121
+#, no-c-format
+msgid ""
+"To define the directory provider of a given index, you use the property "
+"<literal>hibernate.search.<replaceable>indexname</replaceable>."
+"directory_provider </literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:125
+#, no-c-format
+msgid ""
+"hibernate.search.default.directory_provider  org.hibernate.search.store."
+"FSDirectoryProvider\n"
+"                        hibernate.search.default.indexBase=/usr/lucene/"
+"indexes\n"
+"                        \n"
+"                        hibernate.search.Rules.directory_provider  org."
+"hibernate.search.store.RAMDirectoryProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:127
+#, no-c-format
+msgid "applied on"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:129
+#, no-c-format
+msgid ""
+"@Indexed(name=\"Status\")\n"
+"public class Status { ... }\n"
+"                        \n"
+"@Indexed(name=\"Rules\")\n"
+"public class Rule { ... }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:131
+#, no-c-format
+msgid ""
+"will create a file system directory in <filename>/usr/lucene/indexes/Status</"
+"filename> where the Status entities will be indexed, and use an in memory "
+"directory named <literal>Rules</literal> where Rule entities will be indexed."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:136
+#, no-c-format
+msgid ""
+"You can easily define common rules like the directory provider and base "
+"directory, and override those default later on on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:140
+#, no-c-format
+msgid ""
+"Writing your own <classname>DirectoryProvider</classname>, you can utilize "
+"this configuration mechanism as well."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:145
+#, no-c-format
+msgid "Index Sharding"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:147
+#, no-c-format
+msgid ""
+"In some extreme cases involving huge indexes (in size), it is necessary to "
+"split (shard) the indexing data of a given entity type into several Lucene "
+"indexes. This solution is not recommended until you reach significant index "
+"sizes and index update time are slowing down. The main drawback of index "
+"sharding is that searches will end up being slower since more files have to "
+"be opened for a single search. In other words don't do it until you have "
+"problems :)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:155
+#, no-c-format
+msgid ""
+"Despite this strong warning, Hibernate Search allows you to index a given "
+"entity type into several sub indexes. Data is sharded into the different sub "
+"indexes thanks to an <classname>IndexShardingStrategy</classname>. By "
+"default, no sharding strategy is enabled, unless the number of shards is "
+"configured. To configure the number of shards use the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:162
+#, no-c-format
+msgid "hibernate.search.&lt;indexName&gt;.sharding_strategy.nbr_of_shards 5"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:164
+#, no-c-format
+msgid "This will use 5 different shards."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:166
+#, no-c-format
+msgid ""
+"The default sharding strategy, when shards are set up, splits the data "
+"according to the hash value of the id string representation (generated by "
+"the Field Bridge). This ensures a fairly balanced sharding. You can replace "
+"the strategy by implementing <literal>IndexShardingStrategy</literal> and by "
+"setting the following property"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:173
+#, no-c-format
+msgid ""
+"hibernate.search.&lt;indexName&gt;.sharding_strategy my.shardingstrategy."
+"Implementation"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:175
+#, no-c-format
+msgid ""
+"Each shard has an independent directory provider configuration as described "
+"in <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>. The "
+"DirectoryProvider default name for the previous example are <literal>&lt;"
+"indexName&gt;.0</literal> to <literal>&lt;indexName&gt;.4</literal>. In "
+"other words, each shard has the name of it's owning index followed by "
+"<command>.</command> (dot) and its index number."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:183
+#, no-c-format
+msgid ""
+"hibernate.search.default.indexBase /usr/lucene/indexes\n"
+"                        \n"
+"                        hibernate.search.Animal.sharding_strategy."
+"nbr_of_shards 5\n"
+"                        hibernate.search.Animal.directory_provider org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        hibernate.search.Animal.0.indexName Animal00\n"
+"                        hibernate.search.Animal.3.indexBase /usr/lucene/"
+"sharded\n"
+"                        hibernate.search.Animal.3.indexName Animal03"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:185
+#, no-c-format
+msgid ""
+"This configuration uses the default id string hashing strategy and shards "
+"the Animal index into 5 sub-indexes. All sub-indexes are FSDirectoryProvider "
+"instances and the directory where each sub-index is stored is as followed:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:192
+#, no-c-format
+msgid ""
+"for subindex 0: /usr/lucene/indexes/Animal00 (shared indexBase but "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:197
+#, no-c-format
+msgid ""
+"for subindex 1: /usr/lucene/indexes/Animal.1 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:202
+#, no-c-format
+msgid ""
+"for subindex 2: /usr/lucene/indexes/Animal.2 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:207
+#, no-c-format
+msgid ""
+"for subindex 3: /usr/lucene/shared/Animal03 (overridden indexBase, "
+"overridden indexName)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:212
+#, no-c-format
+msgid ""
+"for subindex 4: /usr/lucene/indexes/Animal.4 (shared indexBase, default "
+"indexName)"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:219
+#, no-c-format
+msgid "Worker Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:221
+#, no-c-format
+msgid ""
+"It is possible to refine how Hibernate Search interacts with Lucene through "
+"the worker configuration. The work can be executed to the Lucene directory "
+"or sent to a JMS queue for later processing. When processed to the Lucene "
+"directory, the work can be processed synchronously or asynchronously to the "
+"transaction commit."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:227
+#, no-c-format
+msgid "You can define the worker configuration using the following properties"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:231
+#, no-c-format
+msgid "Worker Configuration (in the namespace of hibernate.worker)"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:241 Configuration.xml:526
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:247
+#, no-c-format
+msgid "backend"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:249
+#, no-c-format
+msgid ""
+"Out of the box support for the Apache Lucene back end and the JMS back end. "
+"Default to <literal>lucene</literal>. Supports also <literal>jms</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:255
+#, no-c-format
+msgid "execution"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:257
+#, no-c-format
+msgid ""
+"Supports synchronous and asynchrounous execution. Default to "
+"<literal><literal>sync</literal></literal>. Supports also <literal>async</"
+"literal>."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:263
+#, no-c-format
+msgid "thread_pool.size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:265
+#, no-c-format
+msgid ""
+"Defines the number of threads in the pool. useful only for asynchrounous "
+"execution. Default to 1."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:270
+#, no-c-format
+msgid "buffer_queue.max"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:272
+#, no-c-format
+msgid ""
+"Defines the maximal number of work queue if the thread poll is starved. "
+"Useful only for asynchrounous execution. Default to infinite. If the limit "
+"is reached, the work is done by the main thread."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:279
+#, no-c-format
+msgid "jndi.*"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:281
+#, no-c-format
+msgid ""
+"Defines the JNDI properties to initiate the InitialContext (if needed). JNDI "
+"is only used by the JMS back end."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:286
+#, no-c-format
+msgid "jms.connection_factory"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:289
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"connection factory from (<literal>java:/ConnectionFactory</literal> by "
+"default in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:296
+#, no-c-format
+msgid "jms.queue"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:298
+#, no-c-format
+msgid ""
+"Mandatory for the JMS back end. Defines the JNDI name to lookup the JMS "
+"queue from. The queue will be used to post work messages."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:304
+#, no-c-format
+msgid "batch_size"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:306
+#, no-c-format
+msgid ""
+"Defines the maximum number of elements indexed before flushing the "
+"transaction-bound queue. Default to 0 (i.e. no limit). See <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:317
+#, no-c-format
+msgid "JMS Master/Slave Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:319
+#, no-c-format
+msgid ""
+"This section describes in greater detail how to configure the Master / "
+"Slaves Hibernate Search architecture."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:323
+#, no-c-format
+msgid "Slave Nodes"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:325
+#, no-c-format
+msgid ""
+"Every index update operation is sent to a JMS queue. Index querying "
+"operations are executed on a local index copy."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:328
+#, no-c-format
+msgid ""
+"### slave configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local copy location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSSlaveDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                hibernate.search.worker.backend = jms\n"
+"                                hibernate.search.worker.jms."
+"connection_factory = java:/ConnectionFactory\n"
+"                                hibernate.search.worker.jms.queue = queue/"
+"hibernatesearch\n"
+"                                #optional jndi configuration (check your JMS "
+"provider for more information)\n"
+"                                \n"
+"                                ## Optional asynchronous execution strategy\n"
+"                                # org.hibernate.worker.execution = async\n"
+"                                # org.hibernate.worker.thread_pool.size = 2\n"
+"                                # org.hibernate.worker.buffer_queue.max = 50"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:330
+#, no-c-format
+msgid "A file system local copy is recommended for faster search results."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:333 Configuration.xml:345
+#, no-c-format
+msgid "The refresh period should be higher that the expected time copy."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:338
+#, no-c-format
+msgid "Master node"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:340
+#, no-c-format
+msgid ""
+"Every index update operation is taken from a JMS queue and executed. The "
+"master index(es) is(are) copied on a regular basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:343
+#, no-c-format
+msgid ""
+"### master configuration\n"
+"                                \n"
+"                                ## DirectoryProvider\n"
+"                                # (remote) master location where information "
+"is copied to\n"
+"                                hibernate.search.default.sourceBase = /mnt/"
+"mastervolume/lucenedirs/mastercopy\n"
+"                                \n"
+"                                # local master location\n"
+"                                hibernate.search.default.indexBase = /Users/"
+"prod/lucenedirs\n"
+"                                \n"
+"                                # refresh every half hour\n"
+"                                hibernate.search.default.refresh = 1800\n"
+"                                \n"
+"                                # appropriate directory provider\n"
+"                                hibernate.search.default.directory_provider "
+"= org.hibernate.search.store.FSMasterDirectoryProvider\n"
+"                                \n"
+"                                ## Backend configuration\n"
+"                                #Backend is the default lucene one"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:348
+#, no-c-format
+msgid ""
+"In addition to the Hibernate Search framework configuration, a Message "
+"Driven Bean should be written and set up to process index works queue "
+"through JMS."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:352
+#, no-c-format
+msgid ""
+"@MessageDriven(activationConfig = {\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destinationType\", propertyValue=\"javax.jms.Queue\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"destination\", propertyValue=\"queue/hiebrnatesearch\"),\n"
+"                                @ActivationConfigProperty(propertyName="
+"\"DLQMaxResent\", propertyValue=\"1\")\n"
+"                                } )\n"
+"                                public class MDBSearchController extends "
+"AbstractJMSHibernateSearchController implements MessageListener {\n"
+"                                @PersistenceContext EntityManager em;\n"
+"                                \n"
+"                                //method retrieving the appropriate session\n"
+"                                protected Session getSession() {\n"
+"                                return (Session) em.getDelegate();\n"
+"                                }\n"
+"                                \n"
+"                                //potentially close the session opened in "
+"#getSession(), not needed here\n"
+"                                protected void cleanSessionIfNeeded(Session "
+"session) \n"
+"                                }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:354
+#, no-c-format
+msgid ""
+"This example inherit the abstract JMS controller class available and "
+"implements a JavaEE 5 MDB. This implementation is given as an example and, "
+"while most likely more complex, can be adjusted to make use of non Java EE "
+"Message Driven Beans. For more information about the <command>getSession()</"
+"command> and <command>cleanSessionIfNeeded()</command>, please check "
+"<classname>AbstractJMSHibernateSearchController</classname>'s javadoc."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:364
+#, no-c-format
+msgid ""
+"Hibernate Search test suite makes use of JBoss Embedded to test the JMS "
+"integration. It allows the unit test to run both the MDB container and JBoss "
+"Messaging (JMS provider) in a standalone way (marketed by some as "
+"\"lightweight\")."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:373
+#, no-c-format
+msgid "Reader Strategy Configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:375
+#, no-c-format
+msgid ""
+"The different reader strategies are described in <xref linkend="
+"\"Hibernate_Search-Architecture-Reader_Strategy\"/>. The default reader "
+"strategy is <literal>shared</literal>. This can be adjusted:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:378
+#, no-c-format
+msgid "hibernate.search.reader.strategy = not-shared"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:380
+#, no-c-format
+msgid ""
+"Adding this property switch to the <literal>non shared</literal> strategy."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:383
+#, no-c-format
+msgid "Or if you have a custom reader strategy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:385
+#, no-c-format
+msgid "hibernate.search.reader.strategy = my.corp.myapp.CustomReaderProvider"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:387
+#, no-c-format
+msgid ""
+"where <classname>my.corp.myapp.CustomReaderProvider</classname> is the "
+"custom strategy implementation"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:392
+#, no-c-format
+msgid "Enabling Hibernate Search and automatic indexing"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:395
+#, no-c-format
+msgid "Enabling Hibernate Search"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:397
+#, no-c-format
+msgid ""
+"Hibernate Search is enabled out of the box when using Hibernate Annotations "
+"or Hibernate EntityManager. If, for some reason you need to disable it, set "
+"<literal>hibernate.search.autoregister_listeners</literal> to false. Note "
+"that there is no performance runtime when the listeners are enabled while no "
+"entity is indexable."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:404
+#, no-c-format
+msgid ""
+"To enable Hibernate Search in Hibernate Core, add the "
+"<literal>FullTextIndexEventListener</literal> for the three Hibernate events "
+"that occur after changes are executed to the database. Once again, such a "
+"configuration is not useful with Hibernate Annotations or Hibernate "
+"EntityManager."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:410
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                &lt;session-factory&gt;\n"
+"                                ...\n"
+"                                &lt;event type=\"post-update\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-insert\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;event type=\"post-delete\"/&gt;\n"
+"                                &lt;listener class=\"org.hibernate.search."
+"event.FullTextIndexEventListener\"/&gt;\n"
+"                                &lt;/event&gt;\n"
+"                                &lt;/session-factory&gt;\n"
+"                                &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:412
+#, no-c-format
+msgid ""
+"Be sure to add the appropriate jar files in your classpath. Check "
+"<literal>lib/README.TXT</literal> for the list of third party libraries. A "
+"typical installation on top of Hibernate Annotations will add:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:418
+#, no-c-format
+msgid "<filename>hibernate-search.jar</filename>: the core engine"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:423
+#, no-c-format
+msgid "<filename>lucene-core-*.jar</filename>: Lucene core engine"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:429
+#, no-c-format
+msgid "Hibernate Core 3.2.6 and beyond"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:431
+#, no-c-format
+msgid ""
+"If you use Hibernate Core 3.2.6 and beyond, make sure to add three "
+"additional event listeners that cope with collection events"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:435
+#, no-c-format
+msgid ""
+"&lt;hibernate-configuration&gt;\n"
+"                                        &lt;session-factory&gt;\n"
+"                                        ...\n"
+"                                        &lt;event type=\"post-collection-"
+"recreate\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"remove\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;event type=\"post-collection-"
+"update\"/&gt;\n"
+"                                        &lt;listener class=\"org.hibernate."
+"search.event.FullTextIndexCollectionEventListener\"/&gt;\n"
+"                                        &lt;/event&gt;\n"
+"                                        &lt;/session-factory&gt;\n"
+"                                        &lt;/hibernate-configuration&gt;"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:437
+#, no-c-format
+msgid ""
+"Those additional event listeners have been introduced in Hibernate 3.2.6. "
+"note the <classname>FullTextIndexCollectionEventListener</classname> usage. "
+"You need to explicitly reference those event listeners unless you use "
+"Hibernate Annotations 3.3.1 and above."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:446
+#, no-c-format
+msgid "Automatic indexing"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:448
+#, no-c-format
+msgid ""
+"By default, every time an object is inserted, updated or deleted through "
+"Hibernate, Hibernate Search updates the according Lucene index. It is "
+"sometimes desirable to disable that features if either your index is read-"
+"only or if index updates are done in a batch way (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:453
+#, no-c-format
+msgid "To disable event based indexing, set"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:455
+#, no-c-format
+msgid "hibernate.search.indexing_strategy manual"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:458
+#, no-c-format
+msgid ""
+"In most case, the JMS backend provides the best of both world, a lightweight "
+"event based system keeps track of all changes in the system, and the "
+"heavyweight indexing process is done by a separate process or machine."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:467
+#, no-c-format
+msgid "Tuning Lucene indexing performance"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:469
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to tune the Lucene indexing performance by "
+"specifying a set of parameters which are passed through to underlying Lucene "
+"<literal>IndexWriter</literal> such as <literal>mergeFactor</literal>, "
+"<literal>maxMergeDocs</literal> and <literal>maxBufferedDocs</literal>. You "
+"can specify these parameters either as default values applying for all "
+"indexes or on a per index basis."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:477
+#, no-c-format
+msgid ""
+"There are two sets of parameters allowing for different performance settings "
+"depending on the use case. During indexing operations triggered by database "
+"modifications, the following ones are used: <itemizedlist> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"merge_factor</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_merge_docs</literal></para> </listitem> <listitem> "
+"<para><literal>hibernate.search.[default|&lt;indexname&gt;].transaction."
+"max_buffered_docs</literal></para> </listitem> </itemizedlist>When indexing "
+"occurs via <literal>FullTextSession.index()</literal> (see <xref linkend="
+"\"Hibernate_Search-Batch_Index\"/>), the following properties are used:"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:495
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.merge_factor"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:499
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:503
+#, no-c-format
+msgid "hibernate.search.[default|&lt;indexname&gt;].batch.max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:507
+#, no-c-format
+msgid ""
+"Unless the corresponding <literal>.batch</literal> property is explicitly "
+"set, the value will default to the <literal>.transaction</literal> property."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:511
+#, no-c-format
+msgid ""
+"For more information about Lucene indexing performances, please refer to the "
+"Lucene documentation."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:515
+#, no-c-format
+msgid ""
+"List of indexing performance properties in the namespace of hibernate.search."
+"[default|&lt;indexname&gt;]"
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:530
+#, no-c-format
+msgid "Default Value"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:536
+#, no-c-format
+msgid "transaction.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:538 Configuration.xml:578
+#, no-c-format
+msgid "Controls segment merge frequency and size."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:539 Configuration.xml:579
+#, no-c-format
+msgid ""
+"Determines how often segment indices are merged when insertion occurs. With "
+"smaller values, less RAM is used while indexing, and searches on unoptimized "
+"indices are faster, but indexing speed is slower. With larger values, more "
+"RAM is used during indexing, and while searches on unoptimized indices are "
+"slower, indexing is faster. Thus larger values (&gt; 10) are best for batch "
+"index creation, and smaller values (&lt; 10) for indices that are "
+"interactively maintained. The value must no be lower than 2."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:547 Configuration.xml:557 Configuration.xml:569
+#, no-c-format
+msgid ""
+"Used by Hibernate Search during index update operations as part of database "
+"modifications."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:550 Configuration.xml:572 Configuration.xml:590
+#: Configuration.xml:611
+#, no-c-format
+msgid "<entry>10</entry>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:554
+#, no-c-format
+msgid "transaction.max_merge_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:556 Configuration.xml:596
+#, no-c-format
+msgid "Defines the largest number of documents allowed in a segment."
+msgstr ""
+
+#. Tag: entry
+#: Configuration.xml:560 Configuration.xml:600
+#, no-c-format
+msgid "Unlimited (Integer.MAX_VALUE)"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:564
+#, no-c-format
+msgid "transaction. max_buffered_docs"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:567 Configuration.xml:606
+#, no-c-format
+msgid ""
+"Controls the amount of documents buffered in memory during indexing. The "
+"bigger the more RAM is consumed."
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:576
+#, no-c-format
+msgid "batch.merge_factor"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:587 Configuration.xml:597 Configuration.xml:608
+#, no-c-format
+msgid "Used during indexing via <literal>FullTextSession.index()</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:594
+#, no-c-format
+msgid "batch.max_merge_docs"
+msgstr ""
+
+#. Tag: literal
+#: Configuration.xml:604
+#, no-c-format
+msgid "batch.max_buffered_docs"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Feedback.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Feedback.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Feedback.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,34 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Getting_Started.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Getting_Started.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Getting_Started.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,606 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"Welcome to Hibernate Search! The following chapter will guide you through "
+"the initial steps required to integrate Hibernate Search into an existing "
+"Hibernate enabled application. In case you are a Hibernate first timer we "
+"recommend you start <ulink url=\"http://hibernate.org/152.html\">here</"
+"ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "System Requirements"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:18
+#, no-c-format
+msgid "System requirements"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:23
+#, no-c-format
+msgid "Java Runtime"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:25
+#, no-c-format
+msgid ""
+"A JDK or JRE version <emphasis>5</emphasis> or greater. You can download a "
+"Java Runtime for Windows/Linux/Solaris <ulink url=\"http://java.sun.com/"
+"javase/downloads/\"> here </ulink>."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:31
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"<literal>hibernate-search.jar</literal> and all dependencies from the "
+"<literal>lib</literal> directory of the Hibernate Search distribution, "
+"especially lucene."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:39
+#, no-c-format
+msgid "Hibernate Core"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:41
+#, no-c-format
+msgid ""
+"These instructions have been tested against Hibernate 3.2.x. Next to the "
+"main <literal>hibernate3.jar</literal> you will need all required libraries "
+"from the <literal>lib</literal> directory of the distribution. Refer to "
+"<literal>README.txt</literal> in the <literal>lib</literal> directory of the "
+"distribution to determine the minimum runtime requirements."
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:50
+#, no-c-format
+msgid "Hibernate Annotations"
+msgstr ""
+
+#. Tag: entry
+#: Getting_Started.xml:52
+#, no-c-format
+msgid ""
+"Although Hibernate Search can be used without Hibernate Annotations the "
+"following instructions use them for ease of use. The tutorial is tested "
+"against version 3.3.x of Hibernate Annotations."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:60
+#, no-c-format
+msgid ""
+"You can download all dependencies from the Hibernate <ulink url=\"http://www."
+"hibernate.org/6.html\">download site</ulink>. You can also verify the "
+"dependency versions against the <ulink url=\"http://www.hibernate.org/6."
+"html#A3\">Hibernate Compatibility Matrix</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:65
+#, no-c-format
+msgid "Maven"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:67
+#, no-c-format
+msgid ""
+"Instead of managing all dependencies yourself, maven users are able to use "
+"the <ulink url=\"http://repository.jboss.com/maven2\">JBoss maven "
+"repository</ulink>. Just add the JBoss repository url to the "
+"<emphasis>repositories</emphasis> section of your <filename>pom.xml</"
+"filename> or <filename>settings.xml</filename>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:73
+#, no-c-format
+msgid ""
+"&lt;repository&gt;\n"
+"                           &lt;id&gt;repository.jboss.org&lt;/id&gt;\n"
+"                        &lt;name&gt;JBoss Maven Repository&lt;/name&gt;\n"
+"                        &lt;url&gt;http://repository.jboss.org/maven2&lt;/"
+"url&gt;\n"
+"                        &lt;layout&gt;default&lt;/layout&gt;\n"
+"                        &lt;/repository&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:75
+#, no-c-format
+msgid "Then add the following dependencies to your pom.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:77
+#, no-c-format
+msgid ""
+"&lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-search&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.0.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-annotations&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.0.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;\n"
+"                        &lt;dependency&gt;\n"
+"                        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
+"                        &lt;artifactId&gt;hibernate-entitymanager&lt;/"
+"artifactId&gt;\n"
+"                        &lt;version&gt;3.3.1.ga&lt;/version&gt;\n"
+"                        &lt;/dependency&gt;"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:79
+#, no-c-format
+msgid ""
+"Not all three dependencies are required. <emphasis>hibernate-search</"
+"emphasis> alone contains everything needed to use Hibernate Search. "
+"<emphasis>hibernate-annotations</emphasis> is only needed if you use non-"
+"Hibernate Search annotations, which are used in the examples of this "
+"tutorial. Note that <emphasis>hibernate-entitymanager</emphasis> is only "
+"required if you use Hibernate Search in conjunction with JPA."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:87
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:89
+#, no-c-format
+msgid ""
+"Once all required dependencies have been downloaded and added to your "
+"application, you will need to add some properties to your hibernate "
+"configuration file. If you are using Hibernate directly this can be done in "
+"<literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</"
+"literal>. If you are using Hibernate via JPA you can also add the properties "
+"to <literal>persistence.xml</literal>. The default properties are suitable "
+"for the standard use."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:92
+#, no-c-format
+msgid ""
+"Apache Lucene has a notion of <literal>Directory</literal> to store the "
+"index files. Hibernate Search handles the initialization and configuration "
+"of a Lucene <literal>Directory</literal> instance via a "
+"<literal>DirectoryProvider</literal>. In this tutorial we will use a "
+"subclass of <literal>DirectoryProvider</literal> called "
+"<classname>FSDirectoryProvider</classname>. This will give us the ability to "
+"physically inspect the Lucene indexes created by Hibernate Search (e.g. via "
+"<ulink url=\"http://www.getopt.org/luke/\">Luke</ulink>). Once you have a "
+"working configuration you can start experimenting with other directory "
+"providers (see <xref linkend=\"Hibernate_Search-Configuration-Directory\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:103
+#, no-c-format
+msgid ""
+"Lets assume that your application contains the Hibernate managed class "
+"<classname>example.Book</classname> and you now want to add free text search "
+"capabilities to your application in order to search body and summary of the "
+"books contained in your database."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:108
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        private Integer id; \n"
+"                        private String body;  \n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:110
+#, no-c-format
+msgid ""
+"First you need to tell Hibernate Search which <classname>DirectoryProvider</"
+"classname> to use. This can be achieved by setting the <literal>hibernate."
+"search.default.directory_provider</literal> property. You also have to "
+"specify the default root directory for all indexes via <literal>hibernate."
+"search.default.indexBase</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:116
+#, no-c-format
+msgid ""
+"...\n"
+"                        # the default directory provider\n"
+"                        hibernate.search.default.directory_provider = org."
+"hibernate.search.store.FSDirectoryProvider\n"
+"                        \n"
+"                        # the default base directory for the indecies\n"
+"                        hibernate.search.default.indexBase = /var/lucene/"
+"indexes    \n"
+"                        ..."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:118
+#, no-c-format
+msgid ""
+"Now add three annotations to the <classname>Book</classname> class. The "
+"first annotation <literal>@Indexed</literal> marks <classname>Book</"
+"classname> as indexable. By design Hibernate Search needs to store an "
+"untokenized id in the index to ensure index unicity for a given entity. "
+"<literal>@DocumentId</literal> marks the property to use for this purpose. "
+"Most, if not all of the time, the property is the database primary key. "
+"Finally you will need to index the fields you wish to make searchable. In "
+"our example these fields are <literal>body</literal> and <literal>summary</"
+"literal>. Both properties get annotated with <literal>@Field</literal>. The "
+"property <literal>index=Index.TOKENIZED</literal> will ensure that the text "
+"will be tokenized using the default Lucene analyzer whereas "
+"<literal>store=Store.NO</literal> ensures that the actual data will not be "
+"stored in the index. Usually, tokenizing means chunking a sentence into "
+"individual words (and potentially excluding common words like <literal>a</"
+"literal>, <literal>the </literal>etc)."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:135
+#, no-c-format
+msgid ""
+"These settings are sufficient for an initial test. For more details on "
+"entity mapping refer to <xref linkend=\"Hibernate_Search-Mapping-Entity\"/>. "
+"In case you want to store and retrieve the indexed data in order to avoid "
+"database roundtrips, refer to projections in"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:140
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        <emphasis role=\"bold\">@Indexed</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        <emphasis role=\"bold\">@DocumentId</emphasis>\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String body;\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED, store=Store.NO)</emphasis>\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ..."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:144
+#, no-c-format
+msgid "Indexing"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:146
+#, no-c-format
+msgid ""
+"Hibernate Search will index every entity persisted, updated or removed "
+"through Hibernate core transparently for the application. However, the data "
+"already present in your database needs to be indexed once to populate the "
+"Lucene index. Once you have added the above properties and annotations it is "
+"time to trigger an initial batch index of your books. You can achieve this "
+"by adding one of the following code examples to your code (see also <xref "
+"linkend=\"Hibernate_Search-Batch_Index\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:154 Getting_Started.xml:176
+#, no-c-format
+msgid "Example using Hibernate Session:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:156
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        List books = session.createQuery(\"from Book as book"
+"\").list();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextSession.index(book);\n"
+"                        }\n"
+"                        tx.commit(); //index are written at commit time"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:158 Getting_Started.xml:180
+#, no-c-format
+msgid "Example using JPA:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:160
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        FullTextEntityManager fullTextEntityManager = Search."
+"createFullTextEntityManager(em);\n"
+"                        List books = em.createQuery(\"select book from Book "
+"as book\").getResultList();\n"
+"                        for (Book book : books) {\n"
+"                        fullTextEntityManager.index(book);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:162
+#, no-c-format
+msgid ""
+"After executing the above code, you should be able to see a Lucene index "
+"under <literal>/var/lucene/indexes/example.Book</literal>. Go ahead an "
+"inspect this index. It will help you to understand how Hibernate Search "
+"works."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:169
+#, no-c-format
+msgid "Searching"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:171
+#, no-c-format
+msgid ""
+"Now it is time to execute a first search. The following code will prepare a "
+"query against the fields <literal>summary</literal> and <literal>body</"
+"literal>, execute it and return a list of <classname>Book</classname>s:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:178
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession(session);\n"
+"                        \n"
+"                        Transaction tx = fullTextSession.beginTransaction"
+"();\n"
+"                        \n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextSession."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();\n"
+"                        \n"
+"                        tx.commit();\n"
+"                        session.close();"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:182
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                        \n"
+"                        FullTextEntityManager fullTextEntityManager = \n"
+"                        org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                        MultiFieldQueryParser parser = new "
+"MultiFieldQueryParser( new String[]{\"summary\", \"body\"}, \n"
+"                        new StandardAnalyzer());\n"
+"                        Query query = parser.parse( \"Java rocks!\" );\n"
+"                        org.hibernate.Query hibQuery = fullTextEntityManager."
+"createFullTextQuery( query, Book.class );\n"
+"                        List result = hibQuery.list();"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:186
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:188
+#, no-c-format
+msgid ""
+"Assume that one of your indexed book entities contains the text \"Java rocks"
+"\" and you want to get hits for all of the following queries: \"rock\", "
+"\"rocks\", \"rocked\" and \"rocking\". In Lucene this can be achieved by "
+"choosing an analyzer class which applies word stemming during the indexing "
+"process. Hibernate Search offers several ways to configure the analyzer to "
+"use (see <xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:197
+#, no-c-format
+msgid ""
+"Setting the <literal>hibernate.search.analyzer</literal> property in the "
+"configuration file. The specified class will then be the default analyzer."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:203
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the entity level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:208
+#, no-c-format
+msgid "Setting the <literal>Analyzer</literal> annotation at the field level."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:213
+#, no-c-format
+msgid ""
+"The following example uses the entity level annotation to apply a English "
+"language analyzer which would help you to achieve your goal. The class "
+"<classname>EnglishAnalyzer</classname> is a custom class using the Snowball "
+"English Stemmer from the <ulink url=\"http://lucene.apache.org/java/docs/"
+"lucene-sandbox/\">Lucene Sandbox</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started.xml:220
+#, no-c-format
+msgid ""
+"package example.Book\n"
+"                        ...\n"
+"                        @Entity\n"
+"                        @Indexed\n"
+"                        <emphasis role=\"bold\">@Analyzer(impl = example."
+"EnglishAnalyzer.class)</emphasis>\n"
+"                        public class Book {\n"
+"                        \n"
+"                        @Id\n"
+"                        @DocumentId\n"
+"                        private Integer id;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String body;\n"
+"                        \n"
+"                        @Field(index=Index.TOKENIZED, store=Store.NO)\n"
+"                        private String summary; \n"
+"                        @ManyToMany private Set&lt;Author&gt; authors = new "
+"HashSet&lt;Author&gt;();\n"
+"                        @ManyToOne private Author mainAuthor;\n"
+"                        private Date publicationDate;\n"
+"                        \n"
+"                        public Book() {\n"
+"                        } \n"
+"                        \n"
+"                        // standard getters/setters follow here\n"
+"                        ... \n"
+"                        }\n"
+"                        \n"
+"                        public class EnglishAnalyzer extends Analyzer {\n"
+"                        /**\n"
+"                        * {@inheritDoc}\n"
+"                        */\n"
+"                        @Override\n"
+"                        public TokenStream tokenStream(String fieldName, "
+"Reader reader) {\n"
+"                        TokenStream result = new StandardTokenizer(reader);\n"
+"                        result = new StandardFilter(result);\n"
+"                        result = new LowerCaseFilter(result);\n"
+"                        result = new SnowballFilter(result, name);\n"
+"                        return result;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:224
+#, no-c-format
+msgid "What's next"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:226
+#, no-c-format
+msgid ""
+"The above paragraphs hopefully helped you getting started with Hibernate "
+"Search. You should by now have a file system based index and be able to "
+"search and retrieve a list of managed objects via Hibernate Search. The next "
+"step is to get more familiar with the overall architecture (<xref linkend="
+"\"Hibernate_Search-Architecture\"/>) and explore the basic features in more "
+"detail."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:233
+#, no-c-format
+msgid ""
+"Two topics which where only briefly touched in this tutorial were analyzer "
+"configuration (<xref linkend=\"Hibernate_Search-Entity-Analyzer\"/>) and "
+"field bridges (<xref linkend=\"Hibernate_Search-Mapping-Bridge\"/>), both "
+"important features required for more fine-grained indexing."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:238
+#, no-c-format
+msgid ""
+"More advanced topics cover clustering (<xref linkend=\"Hibernate_Search-"
+"Configuration-JMS_Backend\"/>) and large indexes handling (<xref linkend="
+"\"Hibernate_Search-Configuration-Index_Sharding\"/>)."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Hibernate_Search_Reference_Guide_CP04_FP01.po
===================================================================

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Introduction.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Introduction.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,44 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:8
+#, no-c-format
+msgid ""
+"Full text search engines like <productname>Apache Lucene</productname> are "
+"powerful technologies that add efficient free text search capabilities to "
+"applications. However, they suffer several mismatches when dealing with "
+"object domain models. Amongst other things, indexes have to be kept up to "
+"date and mismatches between index structure and domain model as well as "
+"query mismatches need to be avoided."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Hibernate Search indexes your domain model with the help of a few "
+"annotations, takes care of database/index synchronization and brings back "
+"regular managed objects from free text queries. To achieve this Hibernate "
+"Search combines the power of <ulink url=\"http://www.hibernate.org"
+"\">Hibernate</ulink> and <ulink url=\"http://lucene.apache.org\">Apache "
+"Lucene</ulink>."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Lucene_Native.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Lucene_Native.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Lucene_Native.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,161 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Lucene_Native.xml:6
+#, no-c-format
+msgid "Accessing Lucene natively"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:9
+#, no-c-format
+msgid "SearchFactory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:11
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> object keeps track of the "
+"underlying Lucene resources for Hibernate Search, it's also a convenient way "
+"to access Lucene natively. The <classname>SearchFactory</classname> can be "
+"accessed from a <classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:16
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:20
+#, no-c-format
+msgid "Accessing a Lucene Directory"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:22
+#, no-c-format
+msgid ""
+"You can always access the Lucene directories through plain Lucene, the "
+"Directory structure is in no way different with or without Hibernate Search. "
+"However there are some more convenient ways to access a given Directory. The "
+"<classname>SearchFactory</classname> keeps track of the "
+"<classname>DirectoryProvider</classname>s per indexed class. One directory "
+"provider can be shared amongst several indexed classes if the classes share "
+"the same underlying index directory. While usually not the case, a given "
+"entity can have several <classname>DirectoryProvider</classname>s is the "
+"index is sharded (see <xref linkend=\"Hibernate_Search-Configuration-"
+"Index_Sharding\"/>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:32
+#, no-c-format
+msgid ""
+"DirectoryProvider[] provider = searchFactory.getDirectoryProviders(Order."
+"class);\n"
+"                        org.apache.lucene.store.Directory directory = "
+"provider[0].getDirectory();"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:34
+#, no-c-format
+msgid ""
+"In this example, directory points to the lucene index storing "
+"<classname>Order</classname>s information. Note that the obtained Lucene "
+"directory must not be closed (this is Hibernate Search responsibility)."
+msgstr ""
+
+#. Tag: title
+#: Lucene_Native.xml:41
+#, no-c-format
+msgid "Using an IndexReader"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:43
+#, no-c-format
+msgid ""
+"Queries in Lucene are executed on an <literal>IndexReader</literal>. "
+"Hibernate Search caches such index readers to maximize performances. Your "
+"code can access such cached / shared resources. You will just have to follow "
+"some \"good citizen\" rules."
+msgstr ""
+
+#. Tag: programlisting
+#: Lucene_Native.xml:48
+#, no-c-format
+msgid ""
+"DirectoryProvider orderProvider = searchFactory.getDirectoryProviders(Order."
+"class)[0];\n"
+"                        DirectoryProvider clientProvider = searchFactory."
+"getDirectoryProviders(Client.class)[0];\n"
+"                        \n"
+"                        ReaderProvider readerProvider = searchFactory."
+"getReaderProvider();\n"
+"                        IndexReader reader = readerProvider.openReader"
+"(orderProvider, clientProvider);\n"
+"                        \n"
+"                        try {\n"
+"                        //do read-only operations on the reader\n"
+"                        }\n"
+"                        finally {\n"
+"                        readerProvider.closeReader(reader);\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:50
+#, no-c-format
+msgid ""
+"The ReaderProvider (described in <xref linkend=\"Hibernate_Search-"
+"Architecture-Reader_Strategy\"/>), will open an IndexReader on top of the "
+"index(es) referenced by the directory providers. This IndexReader being "
+"shared amongst several clients, you must adhere to the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:57
+#, no-c-format
+msgid ""
+"Never call indexReader.close(), but always call readerProvider.closeReader"
+"(reader); (a finally block is the best area)."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:63
+#, no-c-format
+msgid ""
+"This indexReader must not be used for modification operations (especially "
+"delete), if you want to use an read/write index reader, open one from the "
+"Lucene Directory object."
+msgstr ""
+
+#. Tag: para
+#: Lucene_Native.xml:69
+#, no-c-format
+msgid ""
+"Aside from those rules, you can use the IndexReader freely, especially to do "
+"native queries. Using the shared <literal>IndexReader</literal>s will make "
+"most queries more efficient."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Mapping.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Mapping.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Mapping.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1284 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Mapping.xml:6
+#, no-c-format
+msgid "Mapping Entities to the Index Structure"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:8
+#, no-c-format
+msgid ""
+"All the metadata information needed to index entities is described through "
+"some Java annotations. There is no need for xml mapping files nor a list of "
+"indexed entities. The list is discovered at startup by scanning the "
+"Hibernate mapped entities."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:14
+#, no-c-format
+msgid "Mapping an entity"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:17
+#, no-c-format
+msgid "Basic mapping"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:19
+#, no-c-format
+msgid ""
+"First, we must declare a persistent class as indexable. This is done by "
+"annotating the class with <literal>@Indexed</literal> (all entities not "
+"annotated with <literal>@Indexed</literal> will be ignored by the indexing "
+"process):"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:24
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                <emphasis role=\"bold\">@Indexed(index="
+"\"indexes/essays\")</emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:26
+#, no-c-format
+msgid ""
+"The <literal>index</literal> attribute tells Hibernate what the Lucene "
+"directory name is (usually a directory on your file system). If you wish to "
+"define a base directory for all Lucene indexes, you can use the "
+"<literal>hibernate.search.default.indexBase</literal> property in your "
+"configuration file. Each entity instance will be represented by a Lucene "
+"<classname>Document</classname> inside the given index (aka Directory)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:34
+#, no-c-format
+msgid ""
+"For each property (or attribute) of your entity, you have the ability to "
+"describe how it will be indexed. The default (i.e. no annotation) means that "
+"the property is completely ignored by the indexing process. <literal>@Field</"
+"literal> does declare a property as indexed. When indexing an element to a "
+"Lucene document you can specify how it is indexed:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:43
+#, no-c-format
+msgid ""
+"<literal>name</literal> : describe under which name, the property should be "
+"stored in the Lucene Document. The default value is the property name "
+"(following the JavaBeans convention)"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:49
+#, no-c-format
+msgid ""
+"<literal>store</literal> : describe whether or not the property is stored in "
+"the Lucene index. You can store the value <literal>Store.YES</literal> "
+"(consuming more space in the index but allowing projection, see <xref "
+"linkend=\"Hibernate_Search-Query-Projections\"/> for more information), "
+"store it in a compressed way <literal>Store.COMPRESS</literal> (this does "
+"consume more CPU), or avoid any storage <literal>Store.NO</literal> (this is "
+"the default value). When a property is stored, you can retrieve it from the "
+"Lucene Document (note that this is not related to whether the element is "
+"indexed or not)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:62
+#, no-c-format
+msgid ""
+"index: describe how the element is indexed (i.e. the process used to index "
+"the property and the type of information store). The different values are "
+"<literal>Index.NO</literal> (no indexing, i.e. cannot be found by a query), "
+"<literal>Index.TOKENIZED</literal> (use an analyzer to process the "
+"property), <literal>Index.UN_TOKENISED</literal> (no analyzer pre-"
+"processing), <literal>Index.NO_NORM</literal> (do not store the "
+"normalization data). The default value is <literal>TOKENIZED</literal>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:73
+#, no-c-format
+msgid "These attributes are part of the <literal>@Field</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:76
+#, no-c-format
+msgid ""
+"Whether or not you want to store the data depends on how you wish to use the "
+"index query result. For a regular Hibernate Search usage, storing is not "
+"necessary. However you might want to store some fields to subsequently "
+"project them (see <xref linkend=\"Hibernate_Search-Query-Projections\"/> for "
+"more information)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:82
+#, no-c-format
+msgid ""
+"Whether or not you want to tokenize a property depends on whether you wish "
+"to search the element as is, or by the words it contains. It make sense to "
+"tokenize a text field, but it does not to do it for a date field (or an id "
+"field). Note that fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:88
+#, no-c-format
+msgid ""
+"Finally, the id property of an entity is a special property used by "
+"Hibernate Search to ensure index unicity of a given entity. By design, an id "
+"has to be stored and must not be tokenized. To mark a property as index id, "
+"use the <literal>@DocumentId</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:94
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                <emphasis role=\"bold\">@DocumentId</"
+"emphasis>\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@Field(name="
+"\"Abstract\", index=Index.TOKENIZED, store=Store.YES)</emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED)</emphasis>\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:96
+#, no-c-format
+msgid ""
+"These annotations define an index with three fields: <literal>id</literal> , "
+"<literal>Abstract</literal> and <literal>text</literal> . Note that by "
+"default the field name is decapitalized, following the JavaBean "
+"specification."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:102
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify <literal>@DocumentId</literal> on the "
+"identifier property of your entity class."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:109
+#, no-c-format
+msgid "Mapping properties multiple times"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:111
+#, no-c-format
+msgid ""
+"It is sometimes needed to map a property multiple times per index, with "
+"slightly different indexing strategies. Especially, sorting a query by field "
+"requires the field to be <literal>UN_TOKENIZED</literal>. If one want to "
+"search by words in this property and still sort it, one need to index it "
+"twice, once tokenized, once untokenized. @Fields allows to achieve this goal."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:118
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index = \"Book\" )\n"
+"                                public class Book {\n"
+"                                @Fields( {\n"
+"                                @Field(index = Index.TOKENIZED),\n"
+"                                @Field(name = \"summary_forSort\", index = "
+"Index.UN_TOKENIZED, store = Store.YES)\n"
+"                                } )\n"
+"                                public String getSummary() {\n"
+"                                return summary;\n"
+"                                }\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:120
+#, no-c-format
+msgid ""
+"The field summary is indexed twice, once as <literal>summary</literal> in a "
+"tokenized way, and once as <literal>summary_forSort</literal> in an "
+"untokenized way. @Field supports 2 attributes useful when @Fields is used:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:127
+#, no-c-format
+msgid ""
+"analyzer: defines a @Analyzer annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:132
+#, no-c-format
+msgid ""
+"bridge: defines a @FieldBridge annotation per field rather than per property"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:137
+#, no-c-format
+msgid "See below for more information about analyzers and field bridges."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:142
+#, no-c-format
+msgid "Embedded and Associated Objects"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:144
+#, no-c-format
+msgid ""
+"Associated objects as well as embedded objects can be indexed as part of the "
+"root entity index. It is necessary if you expect to search a given entity "
+"based on properties of the associated object(s). In the following example, "
+"the use case is to return the places whose city is Atlanta (In the Lucene "
+"query parser language, it would translate into <code>address.city:Atlanta</"
+"code>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:151
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:153
+#, no-c-format
+msgid ""
+"In this example, the place fields will be indexed in the <literal>Place</"
+"literal> index. The <literal>Place</literal> index documents will also "
+"contain the fields <literal>address.id</literal>, <literal>address.street</"
+"literal>, and <literal>address.city</literal> which you will be able to "
+"query. This is enabled by the <literal>@IndexedEmbedded</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:162
+#, no-c-format
+msgid ""
+"Be careful. Because the data is denormalized in the Lucene index when using "
+"the <classname>@IndexedEmbedded</classname> technique, Hibernate Search "
+"needs to be aware of any change in the Place object and any change in the "
+"Address object to keep the index up to date. To make sure the Place Lucene "
+"document is updated when it's Address changes, you need to mark the other "
+"side of the bidirectional relationship with <classname>@ContainedIn</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:172
+#, no-c-format
+msgid ""
+"<literal>@ContainedIn</literal> is only useful on associations pointing to "
+"entities as opposed to embedded (collection of) objects."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:176
+#, no-c-format
+msgid "Let's make our example a bit more complex:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:178
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded"
+"(depth = 1, prefix = \"ownedBy_\")</emphasis>\n"
+"                                private Owner ownedBy;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner {\n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:180
+#, no-c-format
+msgid ""
+"Any <literal>@*ToOne</literal> and <literal>@Embedded</literal> attribute "
+"can be annotated with <literal>@IndexedEmbedded</literal>. The attributes of "
+"the associated class will then be added to the main entity index. In the "
+"previous example, the index will contain the following fields"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:188
+#, no-c-format
+msgid "<para>id</para>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:192
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:196
+#, no-c-format
+msgid "address.street"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:200
+#, no-c-format
+msgid "address.city"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:204
+#, no-c-format
+msgid "addess.ownedBy_name"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:208
+#, no-c-format
+msgid ""
+"The default prefix is <literal>propertyName.</literal>, following the "
+"traditional object navigation convention. You can override it using the "
+"<literal>prefix</literal> attribute as it is shown on the <literal>ownedBy</"
+"literal> property."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:213
+#, no-c-format
+msgid ""
+"<literal>depth</literal> is necessary when the object graph contains a "
+"cyclic dependency of classes (not instances). For example, if "
+"<classname>Owner</classname> points to <classname>Place</classname>. "
+"Hibernate Search will stop including Indexed embedded attributes after "
+"reaching the expected depth (or the object graph boundaries are reached). A "
+"class having a self reference is an example of cyclic dependency. In our "
+"example, because <literal>depth</literal> is set to 1, any "
+"<literal>@IndexedEmbedded</literal> attribute in Owner (if any) will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:223
+#, no-c-format
+msgid ""
+"Such a feature (<literal>@IndexedEmbedded</literal>) is very useful to "
+"express queries referring to associated objects, such as:"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:229
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where address city is Atlanta. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:232
+#, no-c-format
+msgid "+name:jboss +address.city:atlanta"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:236
+#, no-c-format
+msgid ""
+"Return places where name contains JBoss and where owner's name contain Joe. "
+"In Lucene query this would be"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:239
+#, no-c-format
+msgid "+name:jboss +address.orderBy_name:joe"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:243
+#, no-c-format
+msgid ""
+"In a way it mimics the relational join operation in a more efficient way (at "
+"the cost of data duplication). Remember that, out of the box, Lucene indexes "
+"have no notion of association, the join operation is simply non-existent. It "
+"might help to keep the relational model normalized while benefiting from the "
+"full text index speed and feature richness."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:251
+#, no-c-format
+msgid ""
+"An associated object can itself be (but don't have to) <literal>@Indexed</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:255
+#, no-c-format
+msgid ""
+"When @IndexedEmbedded points to an entity, the association has to be "
+"directional and the other side has to be annotated <literal>@ContainedIn</"
+"literal> (as see in the previous example). If not, Hibernate Search has no "
+"way to update the root index when the associated entity is updated (in our "
+"example, a <literal>Place</literal> index document has to be updated when "
+"the associated <classname>Address</classname> instance is updated."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:263
+#, no-c-format
+msgid ""
+"Sometimes, the object type annotated by <classname>@IndexedEmbedded</"
+"classname> is not the object type targeted by Hibernate and Hibernate Search "
+"especially when interface are used in lieu of their implementation. You can "
+"override the object type targeted by Hibernate Search using the "
+"<command>targetElement</command> parameter."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:270
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index= Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @IndexedEmbedded(depth = 1, prefix = "
+"\"ownedBy_\", <emphasis role=\"bold\">targetElement = Owner.class</"
+"emphasis>)\n"
+"                                @Target(Owner.class)\n"
+"                                private Person ownedBy;\n"
+"                                \n"
+"                                \n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner implements Person { ... }"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:274
+#, no-c-format
+msgid "Boost factor"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:276
+#, no-c-format
+msgid ""
+"Lucene has the notion of <emphasis>boost factor</emphasis> . It's a way to "
+"give more weight to a field or to an indexed element over an other during "
+"the indexation process. You can use <literal>@Boost</literal> at the field "
+"or the class level."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:281
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                <emphasis role=\"bold\">@Boost(2)</"
+"emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                @DocumentId\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                @Field(name=\"Abstract\", index=Index."
+"TOKENIZED, store=Store.YES)\n"
+"                                <emphasis role=\"bold\">@Boost(2.5f)</"
+"emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                public String getText() { return text; }\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:283
+#, no-c-format
+msgid ""
+"In our example, Essay's probability to reach the top of the search list will "
+"be multiplied by 2 and the summary field will be 2.5 more important than the "
+"test field. Note that this explanation is actually wrong, but it is simple "
+"and close enough to the reality. Please check the Lucene documentation or "
+"the excellent <citetitle>Lucene In Action </citetitle> from Otis Gospodnetic "
+"and Erik Hatcher."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:292
+#, no-c-format
+msgid "Analyzer"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:294
+#, no-c-format
+msgid ""
+"The default analyzer class used to index the elements is configurable "
+"through the <literal>hibernate.search.analyzer</literal> property. If none "
+"is defined, <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</"
+"classname> is used as the default."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:300
+#, no-c-format
+msgid ""
+"You can also define the analyzer class per entity, per property and even per "
+"@Field (useful when multiple fields are indexed from a single property)."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:304
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                @Analyzer(impl = EntityAnalyzer.class)\n"
+"                                public class MyEntity {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Integer id;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                @Analyzer(impl = PropertyAnalyzer.class)\n"
+"                                private String summary;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED, analyzer = "
+"@Analyzer(impl = FieldAnalyzer.class)\n"
+"                                private String body;\n"
+"                                \n"
+"                                ...\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:306
+#, no-c-format
+msgid ""
+"In this example, <classname>EntityAnalyzer</classname> is used index all "
+"tokenized properties (e.g. <literal>name</literal>), except for "
+"<literal>summary</literal> and <literal>body</literal> which are indexed "
+"with <classname>PropertyAnalyzer</classname> and <classname>FieldAnalyzer</"
+"classname> respectively."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:313
+#, no-c-format
+msgid ""
+"Mixing different analyzers in the same entity is most of the time a bad "
+"practice. It makes query building more complex and results less predictable "
+"(for the novice), especially if you are using a QueryParser (which uses the "
+"same analyzer for the whole query). As a thumb rule, the same analyzer "
+"should be used for both the indexing and the query for a given field."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:326
+#, no-c-format
+msgid "Property/Field Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:328
+#, no-c-format
+msgid ""
+"In Lucene all index fields have to be represented as Strings. For this "
+"reason all entity properties annotated with <literal>@Field</literal> have "
+"to be indexed in a String form. For most of your properties, Hibernate "
+"Search does the translation job for you thanks to a built-in set of bridges. "
+"In some cases, though you need a more fine grain control over the "
+"translation process."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:336
+#, no-c-format
+msgid "Built-in bridges"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:338
+#, no-c-format
+msgid ""
+"<literal>Hibernate Search</literal> comes bundled with a set of built-in "
+"bridges between a Java property type and its full text representation."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:344
+#, no-c-format
+msgid "null"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:347
+#, no-c-format
+msgid ""
+"null elements are not indexed. Lucene does not support null elements and "
+"this does not make much sense either."
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:353
+#, no-c-format
+msgid "java.lang.String"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:356
+#, no-c-format
+msgid "String are indexed as is"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:361
+#, no-c-format
+msgid ""
+"short, Short, integer, Integer, long, Long, float, Float, double, Double, "
+"BigInteger, BigDecimal"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:365
+#, no-c-format
+msgid ""
+"Numbers are converted in their String representation. Note that numbers "
+"cannot be compared by Lucene (i.e. used in ranged queries) out of the box: "
+"they have to be padded"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:368
+#, no-c-format
+msgid ""
+"Using a Range query is debatable and has drawbacks, an alternative approach "
+"is to use a Filter query which will filter the result query to the "
+"appropriate range."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:372
+#, no-c-format
+msgid "Hibernate Search will support a padding mechanism"
+msgstr ""
+
+#. Tag: term
+#: Mapping.xml:378
+#, no-c-format
+msgid "java.util.Date"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:381
+#, no-c-format
+msgid ""
+"Dates are stored as yyyyMMddHHmmssSSS in GMT time (200611072203012 for Nov "
+"7th of 2006 4:03PM and 12ms EST). You shouldn't really bother with the "
+"internal format. What is important is that when using a DateRange Query, you "
+"should know that the dates have to be expressed in GMT time."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:387
+#, no-c-format
+msgid ""
+"Usually, storing the date up to the millisecond is not necessary. "
+"<literal>@DateBridge</literal> defines the appropriate resolution you are "
+"willing to store in the index ( <literal> <literal>@DateBridge"
+"(resolution=Resolution.DAY)</literal> </literal> ). The date pattern will "
+"then be truncated accordingly."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:394
+#, no-c-format
+msgid ""
+"@Entity \n"
+"                                                        @Indexed\n"
+"                                                        public class Meeting "
+"{\n"
+"                                                        @Field(index=Index."
+"UN_TOKENIZED)\n"
+"                                                        <emphasis role=\"bold"
+"\">@DateBridge(resolution=Resolution.MINUTE)</emphasis>\n"
+"                                                        private Date date;\n"
+"                                                        ..."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:397
+#, no-c-format
+msgid ""
+"A Date whose resolution is lower than <literal>MILLISECOND</literal> cannot "
+"be a <literal>@DocumentId</literal>"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:408
+#, no-c-format
+msgid "Custom Bridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:410
+#, no-c-format
+msgid ""
+"It can happen that the built-in bridges of Hibernate Search do not cover "
+"some of your property types, or that the String representation used is not "
+"what you expect. The following paragraphs several solutions for this problem."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:416
+#, no-c-format
+msgid "StringBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:418
+#, no-c-format
+msgid ""
+"The simplest custom solution is to give <productname>Hibernate Search </"
+"productname> an implementation of your expected <emphasis>object to String</"
+"emphasis> bridge. To do so you need to implements the <literal>org.hibernate."
+"search.bridge.StringBridge</literal> interface"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:425
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Padding Integer bridge.\n"
+"                                        * All numbers will be padded with 0 "
+"to match 5 digits\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class PaddedIntegerBridge "
+"implements <emphasis role=\"bold\">StringBridge</emphasis> {\n"
+"                                        \n"
+"                                        private int PADDING = 5;\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"String objectToString(Object object)</emphasis> {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"PADDING) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; PADDING ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:427
+#, no-c-format
+msgid ""
+"Then any property or field can use this bridge thanks to the "
+"<literal>@FieldBridge</literal> annotation"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:430
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">@FieldBridge(impl = PaddedIntegerBridge.class)</"
+"emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:432
+#, no-c-format
+msgid ""
+"Parameters can be passed to the Bridge implementation making it more "
+"flexible. The Bridge implementation implements a "
+"<classname>ParameterizedBridge</classname> interface, and the parameters are "
+"passed through the <literal>@FieldBridge</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:438
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements StringBridge, <emphasis\n"
+"                                                                                role="
+"\"bold\">ParameterizedBridge</emphasis> {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"setParameterValues(Map parameters)</emphasis> {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        <emphasis role=\"bold\">params = "
+"@Parameter(name=\"padding\", value=\"10\")</emphasis>\n"
+"                                        )\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:440
+#, no-c-format
+msgid ""
+"The <classname>ParameterizedBridge</classname> interface can be implemented "
+"by <classname>StringBridge</classname> , <classname>TwoWayStringBridge</"
+"classname> , <classname>FieldBridge</classname> implementations (see bellow)."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:446
+#, no-c-format
+msgid ""
+"If you expect to use your bridge implementation on for an id property (i.e. "
+"annotated with <literal>@DocumentId</literal> ), you need to use a slightly "
+"extended version of <literal>StringBridge</literal> named "
+"<classname>TwoWayStringBridge</classname> . <literal>Hibernate Search </"
+"literal> needs to read the string representation of the identifier and "
+"generate the object out of it. There is not difference in the way the "
+"<literal>@FieldBridge</literal> annotation is used."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:455
+#, no-c-format
+msgid ""
+"public class PaddedIntegerBridge implements TwoWayStringBridge, "
+"ParameterizedBridge {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"Object stringToObject(String stringValue)</emphasis> {\n"
+"                                        return new Integer(stringValue);\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //id property\n"
+"                                        @DocumentId\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        params = @Parameter(name=\"padding"
+"\", value=\"10\") \n"
+"                                        private Integer id;"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:457
+#, no-c-format
+msgid ""
+"It is critically important for the two-way process to be idempotent (i.e. "
+"object = stringToObject( objectToString( object ) ) )."
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:465
+#, no-c-format
+msgid "FieldBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:467
+#, no-c-format
+msgid ""
+"Some usecases requires more than a simple object to string translation when "
+"mapping a property to a Lucene index. To give you most of the flexibility "
+"you can also implement a bridge as a <classname>FieldBridge</classname> . "
+"This interface give you a property value and let you map it the way you want "
+"in your Lucene <classname>Document</classname> .This interface is very "
+"similar in its concept to the <productname>Hibernate</productname> "
+"<classname>UserType</classname> ."
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:476
+#, no-c-format
+msgid ""
+"You can for example store a given property in two different document fields"
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:479
+#, no-c-format
+msgid ""
+"/**\n"
+"                                        * Store the date in 3 different "
+"field year, month, day\n"
+"                                        * to ease Range Query per year, "
+"month or day\n"
+"                                        * (e.g. get all the elements of "
+"December for the last 5 years)\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class DateSplitBridge "
+"implements FieldBridge {\n"
+"                                        private final static TimeZone GMT = "
+"TimeZone.getTimeZone(\"GMT\");\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"set(String name, Object value, Document document, Field.Store\n"
+"                                                store, Field.Index index, "
+"Float boost) {\n"
+"                                        </emphasis>\n"
+"                                        Date date = (Date) value;\n"
+"                                        Calendar cal = GregorianCalendar."
+"getInstance( GMT );\n"
+"                                        cal.setTime( date );\n"
+"                                        int year = cal.get( Calendar."
+"YEAR );\n"
+"                                        int month = cal.get( Calendar."
+"MONTH ) + 1;\n"
+"                                        int day = cal.get( Calendar."
+"DAY_OF_MONTH );\n"
+"                                        //set year\n"
+"                                        Field field = new Field( name + \"."
+"year\", String.valueOf(year), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set month and pad it if needed\n"
+"                                        field = new Field( name + \".month"
+"\", month &lt; 10 ? \"0\" : \"\" + String.valueOf(month), store, index);\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set day and pad it if needed\n"
+"                                        field = new Field( name + \".day\", "
+"day &lt; 10 ? \"0\" : \"\" + String.valueOf(day), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        <emphasis role=\"bold\">@FieldBridge"
+"(impl = DateSplitBridge.class)</emphasis>\n"
+"                                        private Integer length;"
+msgstr ""
+
+#. Tag: title
+#: Mapping.xml:484
+#, no-c-format
+msgid "@ClassBridge"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:486
+#, no-c-format
+msgid ""
+"It is sometimes useful to combine more than one property of a given entity "
+"and index this combination in a specific way into the Lucene index. The "
+"<classname>@ClassBridge</classname> and <classname>@ClassBridges</classname> "
+"annotations can be defined at the class level (as opposed to the property "
+"level). In this case the custom field bridge implementation receives the "
+"entity instance as the value parameter instead of a particular property."
+msgstr ""
+
+#. Tag: programlisting
+#: Mapping.xml:494
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                                        @Indexed\n"
+"                                        <emphasis role=\"bold"
+"\">@ClassBridge</emphasis>(name=\"branchnetwork\",\n"
+"                                        index=Index.TOKENIZED,\n"
+"                                        store=Store.YES,\n"
+"                                        impl = <emphasis role=\"bold"
+"\">CatFieldsClassBridge.class</emphasis>,\n"
+"                                        params = @Parameter( name=\"sepChar"
+"\", value=\" \" ) )\n"
+"                                        public class Department {\n"
+"                                        private int id;\n"
+"                                        private String network;\n"
+"                                        private String branchHead;\n"
+"                                        private String branch;\n"
+"                                        private Integer maxEmployees;\n"
+"                                        ...\n"
+"                                        }\n"
+"                                        \n"
+"                                        public class CatFieldsClassBridge "
+"implements FieldBridge, ParameterizedBridge {\n"
+"                                        \n"
+"                                        private String sepChar;\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        this.sepChar = (String) parameters."
+"get( \"sepChar\" );\n"
+"                                        }\n"
+"                                        \n"
+"                                        public void set(String name, \n"
+"                                        Object value, //the department "
+"instance (entity) in this case\n"
+"                                        Document document, //the Lucene "
+"document \n"
+"                                        Field.Store store, Field.Index "
+"index, Float boost) {\n"
+"                                        // In this particular class the name "
+"of the new field was passed\n"
+"                                        // from the name field of the "
+"ClassBridge Annotation. This is not\n"
+"                                        // a requirement. It just works that "
+"way in this instance. The\n"
+"                                        // actual name could be supplied by "
+"hard coding it below.\n"
+"                                        Department dep = (Department) "
+"value;\n"
+"                                        String fieldValue1 = dep.getBranch"
+"();\n"
+"                                        if ( fieldValue1 == null ) {\n"
+"                                        fieldValue1 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue2 = dep.getNetwork"
+"();\n"
+"                                        if ( fieldValue2 == null ) {\n"
+"                                        fieldValue2 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue = fieldValue1 + "
+"sepChar + fieldValue2;\n"
+"                                        Field field = new Field( name, "
+"fieldValue, store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }"
+msgstr ""
+
+#. Tag: para
+#: Mapping.xml:496
+#, no-c-format
+msgid ""
+"In this example, the particular <classname>CatFieldsClassBridge</classname> "
+"is applied to the <literal>department</literal> instance, the field bridge "
+"then concatenate both branch and network and index the concatenation."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Optimize.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Optimize.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Optimize.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,210 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Optimize.xml:6
+#, no-c-format
+msgid "Index Optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:8
+#, no-c-format
+msgid ""
+"From time to time, the Lucene index needs to be optimized. The process is "
+"essentially a defragmentation: until the optimization occurs, deleted "
+"documents are just marked as such, no physical deletion is applied, the "
+"optimization can also adjust the number of files in the Lucene Directory."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:16
+#, no-c-format
+msgid ""
+"The optimization speeds up searches but in no way speeds up indexation "
+"(update). During an optimization, searches can be performed (but will most "
+"likely be slowed down), and all index updates will be stopped. Prefer "
+"optimizing:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:25
+#, no-c-format
+msgid "on an idle system or when the searches are less frequent"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:29
+#, no-c-format
+msgid ""
+"after a lot of index modifications (doing so before will not speed up the "
+"indexation process)"
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:35
+#, no-c-format
+msgid "Automatic optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:37
+#, no-c-format
+msgid "Hibernate Search can optimize automatically an index after:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:41
+#, no-c-format
+msgid "a certain amount of operations have been applied (insertion, deletion)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:46
+#, no-c-format
+msgid "or a certain amount of transactions have been applied"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:50
+#, no-c-format
+msgid "The configuration can be global or defined at the index level:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:53
+#, no-c-format
+msgid ""
+"hibernate.search.default.optimizer.operation_limit.max = 1000\n"
+"                        hibernate.search.default.optimizer.transaction_limit."
+"max = 100\n"
+"                        \n"
+"                        hibernate.search.Animal.optimizer.transaction_limit."
+"max = 50"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:55
+#, no-c-format
+msgid ""
+"An optimization will be triggered to the <literal>Animal</literal> index as "
+"soon as either:"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:60
+#, no-c-format
+msgid "the number of addition and deletion reaches 1000"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:64
+#, no-c-format
+msgid ""
+"the number of transactions reaches 50 (<command>hibernate.search.Animal."
+"optimizer.transaction_limit.max</command> having priority over "
+"<command>hibernate.search.default.optimizer.transaction_limit.max</command>)"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:71
+#, no-c-format
+msgid ""
+"If none of these parameters are defined, not optimization is processed "
+"automatically."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:76
+#, no-c-format
+msgid "Manual optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:78
+#, no-c-format
+msgid ""
+"You can programmatically optimize (defragment) a Lucene index from Hibernate "
+"Search through the <classname>SearchFactory</classname>"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:81
+#, no-c-format
+msgid ""
+"searchFactory.optimize(Order.class);\n"
+"                        \n"
+"                        searchFactory.optimize();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:83
+#, no-c-format
+msgid ""
+"The first example re-index the Lucene index holding <classname>Order</"
+"classname>s, the second, optimize all indexes."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:86
+#, no-c-format
+msgid ""
+"The <classname>SearchFactory</classname> can be accessed from a "
+"<classname>FullTextSession</classname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Optimize.xml:89
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession"
+"(regularSession);\n"
+"                        SearchFactory searchFactory = fullTextSession."
+"getSearchFactory();"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:91
+#, no-c-format
+msgid ""
+"Note that <literal>searchFactory.optimize()</literal> has no effect on a JMS "
+"backend. You must apply the optimize operation on the Master node."
+msgstr ""
+
+#. Tag: title
+#: Optimize.xml:97
+#, no-c-format
+msgid "Adjusting optimization"
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:99
+#, no-c-format
+msgid ""
+"Apache Lucene has a few parameters to influence how optimization is "
+"performed. Hibernate Search expose those parameters."
+msgstr ""
+
+#. Tag: para
+#: Optimize.xml:102
+#, no-c-format
+msgid ""
+"Further index optimization parameters include <literal>hibernate.search."
+"[default|&lt;indexname&gt;].merge_factor</literal>, <literal>hibernate."
+"search.[default|&lt;indexname&gt;].max_merge_docs</literal> and "
+"<literal>hibernate.search.[default|&lt;indexname&gt;].max_buffered_docs</"
+"literal> - see <xref linkend=\"Hibernate_Search-Configuration-"
+"Lucene_Index_Performance\"/> for more details."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Preface.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Preface.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Preface.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Query.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Query.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Query.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,1058 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Query.xml:6
+#, no-c-format
+msgid "Query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:8
+#, no-c-format
+msgid ""
+"The second most important capability of Hibernate Search is the ability to "
+"execute a Lucene query and retrieve entities managed by an Hibernate "
+"session, providing the power of Lucene without living the Hibernate "
+"paradigm, and giving another dimension to the Hibernate classic search "
+"mechanisms (HQL, Criteria query, native SQL query)."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:14
+#, no-c-format
+msgid ""
+"To access the <productname>Hibernate Search</productname> querying "
+"facilities, you have to use an Hibernate <classname>FullTextSession</"
+"classname> . A Search Session wraps a regular <classname>org.hibernate."
+"Session</classname> to provide query and indexing capabilities."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:20
+#, no-c-format
+msgid ""
+"Session session = sessionFactory.openSession();\n"
+"                ...\n"
+"                FullTextSession fullTextSession = Search."
+"createFullTextSession(session);"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:22
+#, no-c-format
+msgid "The search facility is built on native Lucene queries."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:24
+#, no-c-format
+msgid ""
+"org.apache.lucene.queryParser.QueryParser parser = new QueryParser(\"title"
+"\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );\n"
+"                </emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.list(); //return a list of "
+"managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:26
+#, no-c-format
+msgid ""
+"The Hibernate query built on top of the Lucene query is a regular "
+"<literal>org.hibernate.Query</literal> , you are in the same paradigm as the "
+"other Hibernate query facilities (HQL, Native or Criteria). The regular "
+"<literal>list()</literal> , <literal>uniqueResult()</literal> , "
+"<literal>iterate()</literal> and <literal>scroll()</literal> can be used."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:33
+#, no-c-format
+msgid ""
+"For people using Java Persistence (aka EJB 3.0 Persistence) APIs of "
+"Hibernate, the same extensions exist:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:36
+#, no-c-format
+msgid ""
+"EntityManager em = entityManagerFactory.createEntityManager();\n"
+"                \n"
+"                FullTextEntityManager fullTextEntityManager = \n"
+"                org.hibernate.hibernate.search.jpa.Search."
+"createFullTextEntityManager(em);\n"
+"                \n"
+"                ...\n"
+"                org.apache.lucene.queryParser.QueryParser parser = new "
+"QueryParser(\"title\", new StopAnalyzer() );\n"
+"                \n"
+"                org.apache.lucene.search.Query luceneQuery = parser.parse"
+"( \"summary:Festina Or brand:Seiko\" );\n"
+"                <emphasis role=\"bold\">javax.persistence.Query "
+"fullTextQuery = fullTextEntityManager.createFullTextQuery( luceneQuery );</"
+"emphasis>\n"
+"                \n"
+"                List result = fullTextQuery.getResultList(); //return a list "
+"of managed objects"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:38
+#, no-c-format
+msgid ""
+"The following examples show the Hibernate APIs but the same example can be "
+"easily rewritten with the Java Persistence API by just adjusting the way the "
+"FullTextQuery is retrieved."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:43
+#, no-c-format
+msgid "Building queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:45
+#, no-c-format
+msgid ""
+"Hibernate Search queries are built on top of Lucene queries. It gives you a "
+"total freedom on the kind of Lucene queries you are willing to execute. "
+"However, once built, Hibernate Search abstract the query processing from "
+"your application using org.hibernate.Query as your primary query "
+"manipulation API."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:52
+#, no-c-format
+msgid "Building a Lucene query"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:54
+#, no-c-format
+msgid ""
+"This subject is generally speaking out of the scope of this documentation. "
+"Please refer to the Lucene documentation or Lucene In Action."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:60
+#, no-c-format
+msgid "Building a Hibernate Search query"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:63
+#, no-c-format
+msgid "Generality"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:65
+#, no-c-format
+msgid ""
+"Once the Lucene query is built, it needs to be wrapped into an Hibernate "
+"Query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:68
+#, no-c-format
+msgid ""
+"FullTextSession fullTextSession = Search.createFullTextSession( session );\n"
+"                                        org.hibernate.Query fullTextQuery = "
+"fullTextSession.createFullTextQuery( luceneQuery );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:70
+#, no-c-format
+msgid ""
+"If not specified otherwise, the query will be executed against all indexed "
+"entities, potentially returning all types of indexed classes. It is advised, "
+"from a performance point of view, to restrict the returned types:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:75
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        //or\n"
+"                                        fullTextQuery = fullTextSession."
+"createFullTextQuery( luceneQuery, Item.class, Actor.class );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:77
+#, no-c-format
+msgid ""
+"The first example returns only matching customers, the second returns "
+"matching actors and items."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:82
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:84
+#, no-c-format
+msgid ""
+"It is recommended to restrict the number of returned objects per query. It "
+"is a very common use case as well, the user usually navigate from one page "
+"to an other. The way to define pagination is exactly the way you would "
+"define pagination in a plain HQL or Criteria query."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:90
+#, no-c-format
+msgid ""
+"org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery"
+"( luceneQuery, Customer.class );\n"
+"                                        fullTextQuery.setFirstResult(15); //"
+"start from the 15th element\n"
+"                                        fullTextQuery.setMaxResults(10); //"
+"return 10 elements"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:93
+#, no-c-format
+msgid ""
+"It is still possible to get the total number of matching elements regardless "
+"of the pagination. See <command>getResultSize()</command> below"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:100
+#, no-c-format
+msgid "Sorting"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:102
+#, no-c-format
+msgid ""
+"Apache Lucene provides a very flexible and powerful way to sort results. "
+"While the default sorting (by relevance) is appropriate most of the time, it "
+"can interesting to sort by one or several properties."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:107
+#, no-c-format
+msgid ""
+"Inject the Lucene Sort object to apply a Lucene sorting strategy to an "
+"Hibernate Search."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:110
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery( query, "
+"Book.class );\n"
+"                                        org.apache.lucene.search.Sort sort = "
+"new Sort(new SortField(\"title\"));\n"
+"                                        <emphasis role=\"bold\">query.setSort"
+"(sort);</emphasis>\n"
+"                                        List results = query.list();"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:112
+#, no-c-format
+msgid ""
+"One can notice the <classname>FullTextQuery</classname> interface which is a "
+"sub interface of <classname>org.hibernate.Query</classname>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:116
+#, no-c-format
+msgid "Fields used for sorting must not be tokenized."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:120
+#, no-c-format
+msgid "Fetching strategy"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:122
+#, no-c-format
+msgid ""
+"When you restrict the return types to one class, Hibernate Search loads the "
+"objects using a single query. It also respects the static fetching strategy "
+"defined in your domain model."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:126
+#, no-c-format
+msgid ""
+"It is often useful, however, to refine the fetching strategy for a specific "
+"use case."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:129
+#, no-c-format
+msgid ""
+"Criteria criteria = s.createCriteria( Book.class ).setFetchMode( \"authors"
+"\", FetchMode.JOIN );\n"
+"                                        s.createFullTextQuery( luceneQuery )."
+"setCriteriaQuery( criteria );"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:131
+#, no-c-format
+msgid ""
+"In this example, the query will return all Books matching the luceneQuery. "
+"The authors collection will be loaded from the same query using an SQL outer "
+"join."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:135
+#, no-c-format
+msgid ""
+"When defining a criteria query, it is not needed to restrict the entity "
+"types returned while creating the Hibernate Search query from the full text "
+"session: the type is guessed from the criteria query itself. Only fetch mode "
+"can be adjusted, refrain from applying any other restriction."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:141
+#, no-c-format
+msgid ""
+"One cannot use <command>setCriteriaQuery</command> if more than one entity "
+"type is expected to be returned."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:146
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:148
+#, no-c-format
+msgid ""
+"For some use cases, returning the domain object (graph) is overkill. Only a "
+"small subset of the properties is necessary. Hibernate Search allows you to "
+"return a subset of properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:152
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( \"id\", \"summary\", \"body\", \"mainAuthor.name\" )</"
+"emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        Integer id = firstResult[0];\n"
+"                                        String summary = firstResult[1];\n"
+"                                        String body = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:154
+#, no-c-format
+msgid ""
+"Hibernate Search extracts the properties from the Lucene index and convert "
+"them back to their object representation, returning a list of "
+"<classname>Object[]</classname>. Projections avoid a potential database "
+"round trip (useful if the query response time is critical), but has some "
+"constraints:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:162
+#, no-c-format
+msgid ""
+"the properties projected must be stored in the index (<literal>@Field"
+"(store=Store.YES)</literal>), which increase the index size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:168
+#, no-c-format
+msgid ""
+"the properties projected must use a <literal>FieldBridge</literal> "
+"implementing <classname>org.hibernate.search.bridge.TwoWayFieldBridge</"
+"classname> or <literal>org.hibernate.search.bridge.TwoWayStringBridge</"
+"literal>, the latter being the simpler version. All Hibernate Search built-"
+"in types are two-way."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:178
+#, no-c-format
+msgid ""
+"Projection is useful for another kind of usecases. Lucene provides some "
+"metadata information to the user about the results. By using some special "
+"placeholders, the projection mechanism can retrieve them:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:183
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                        query.<emphasis role=\"bold"
+"\">setProjection( FullTextQuery.SCORE, FullTextQuery.BOOST, FullTextQuery."
+"THIS, \"mainAuthor.name\" )</emphasis>;\n"
+"                                        List results = query.list();\n"
+"                                        Object[] firstResult = (Object[]) "
+"results.get(0);\n"
+"                                        float score = firstResult[0];\n"
+"                                        float boost = firstResult[1];\n"
+"                                        Book book = firstResult[2];\n"
+"                                        String authorName = firstResult[3];"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:185
+#, no-c-format
+msgid ""
+"You can mix and match regular fields and special placeholders. Here is the "
+"list of available placeholders:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:190
+#, no-c-format
+msgid ""
+"FullTextQuery.THIS: returns the initialized and managed entity (as a non "
+"projected query would have done)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:195
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT: returns the Lucene Document related to the object "
+"projected"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:200
+#, no-c-format
+msgid ""
+"FullTextQuery.SCORE: returns the document score in the query. The score is "
+"guaranteed to be between 0 and 1 but the highest score is not necessarily "
+"equals to 1. Scores are handy to compare one result against an other for a "
+"given query but are useless when comparing the result of different queries."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:208
+#, no-c-format
+msgid "FullTextQuery.BOOST: the boost value of the Lucene Document"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:213
+#, no-c-format
+msgid "FullTextQuery.ID: the id property value of the projected object"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:218
+#, no-c-format
+msgid ""
+"FullTextQuery.DOCUMENT_ID: the Lucene document id. Careful, Lucene document "
+"id can change overtime between two different IndexReader opening (this "
+"feature is experimental)"
+msgstr ""
+
+#. Tag: title
+#: Query.xml:228
+#, no-c-format
+msgid "Retrieving the results"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:230
+#, no-c-format
+msgid ""
+"Once the Hibernate Search query is built, executing it is in no way "
+"different than executing a HQL or Criteria query. The same paradigm and "
+"object semantic apply. All the common operations are available: <command>list"
+"()</command>, <command>uniqueResult()</command>, <command>iterate()</"
+"command>, <command>scroll()</command>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:238
+#, no-c-format
+msgid "Performance considerations"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:240
+#, no-c-format
+msgid ""
+"If you expect a reasonable number of results (for example using pagination) "
+"and expect to work on all of them, <command>list()</command> or "
+"<command>uniqueResult()</command> are recommended. <command>list()</command> "
+"work best if the entity <literal>batch-size</literal> is set up properly. "
+"Note that Hibernate Search has to process all Lucene Hits elements (within "
+"the pagination) when using <command>list()</command> , <command>uniqueResult"
+"()</command> and <command>iterate()</command>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:251
+#, no-c-format
+msgid ""
+"If you wish to minimize Lucene document loading, <command>scroll()</command> "
+"is more appropriate. Don't forget to close the <classname>ScrollableResults</"
+"classname> object when you're done, since it keeps Lucene resources. If you "
+"expect to use <command>scroll</command> but wish to load objects in batch, "
+"you can use <command>query.setFetchSize()</command>: When an object is "
+"accessed, and if not already loaded, Hibernate Search will load the next "
+"<literal>fetchSize</literal> objects in one pass."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:260
+#, no-c-format
+msgid "Pagination is a preferred method over scrolling though."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:264
+#, no-c-format
+msgid "Result size"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:266
+#, no-c-format
+msgid "It is sometime useful to know the total number of matching documents:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:271
+#, no-c-format
+msgid "for the Google-like feature 1-10 of about 888,000,000"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:275
+#, no-c-format
+msgid "to implement a fast pagination navigation"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:279
+#, no-c-format
+msgid ""
+"to implement a multi step search engine (adding approximation if the "
+"restricted query return no or not enough results)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:284
+#, no-c-format
+msgid "But it would be costly to retrieve all the matching documents."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:287
+#, no-c-format
+msgid ""
+"Hibernate Search allows you to retrieve the total number of matching "
+"documents regardless of the pagination parameters. Even more interesting, "
+"you can retrieve the number of matching elements without triggering a single "
+"object load."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:292
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the number of matching books without "
+"loading a single one\n"
+"                                \n"
+"                                org.hibernate.search.FullTextQuery query = s."
+"createFullTextQuery( luceneQuery, Book.class );\n"
+"                                query.setMaxResult(10);\n"
+"                                List results = query.list();\n"
+"                                assert 3245 == <emphasis role=\"bold\">query."
+"getResultSize()</emphasis>; //return the total number of matching books "
+"regardless of pagination"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:295
+#, no-c-format
+msgid ""
+"Like Google, the number of results is approximate if the index is not fully "
+"up-to-date with the database (asynchronous cluster for example)."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:302
+#, no-c-format
+msgid "ResultTransformer"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:304
+#, no-c-format
+msgid ""
+"Especially when using projection, the data structure returned by a query (an "
+"object array in this case), is not always matching the application needs. It "
+"is possible to apply a <classname>ResultTransformer</classname> operation "
+"post query to match the targeted data structure:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:310
+#, no-c-format
+msgid ""
+"org.hibernate.search.FullTextQuery query = s.createFullTextQuery"
+"( luceneQuery, Book.class );\n"
+"                                query.setProjection( \"title\", \"mainAuthor."
+"name\" );\n"
+"                                \n"
+"                                <emphasis role=\"bold\">query."
+"setResultTransformer( \n"
+"                                        new "
+"StaticAliasToBeanResultTransformer( BookView.class, \"title\", \"author"
+"\" ) \n"
+"                                        );</emphasis>\n"
+"                                List&lt;BookView&gt; results = (List&lt;"
+"BookView&gt;) query.list();\n"
+"                                for(BookView view : results) {\n"
+"                                log.info( \"Book: \" + view.getTitle() + \", "
+"\" + view.getAuthor() );\n"
+"                                }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:312
+#, no-c-format
+msgid ""
+"Examples of <classname>ResultTransformer</classname> implementations can be "
+"found in the Hibernate Core codebase."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:318
+#, no-c-format
+msgid "Filters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:320
+#, no-c-format
+msgid ""
+"Apache Lucene has a powerful feature that allows to filters results from a "
+"query according to a custom filtering process. This is a very powerful way "
+"to apply some data restrictions after a query, especially since filters can "
+"be cached and reused. Some interesting usecases are:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:328
+#, no-c-format
+msgid "security"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:332
+#, no-c-format
+msgid "temporal data (e.g.. view only last month's data)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:336
+#, no-c-format
+msgid "population filter (e.g. search limited to a given category)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:341
+#, no-c-format
+msgid "and many more"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:345
+#, no-c-format
+msgid ""
+"Hibernate Search pushes the concept further by introducing the notion of "
+"parameterizable named filters which are transparently cached. For people "
+"familiar with the notion of Hibernate Core filters, the API is very similar."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:350
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"bestDriver\");\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")."
+"setParameter( \"login\", \"andre\" );\n"
+"                        fullTextQuery.list(); //returns only best drivers "
+"where andre has credentials"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:352
+#, no-c-format
+msgid ""
+"In this example we enabled 2 filters on top of this query. You can enable "
+"(or disable) as many filters as you want."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:355
+#, no-c-format
+msgid ""
+"Declaring filters is done through the <classname>@FullTextFilterDef</"
+"classname> annotation. This annotation can be on any <literal>@Indexed</"
+"literal> entity regardless of the filter operation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:360
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDefs( {\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"bestDriver\", impl = BestDriversFilter.class, cache=false)</emphasis>, //"
+"actual Filter implementation\n"
+"                        <emphasis role=\"bold\">@FullTextFilterDef(name = "
+"\"security\", impl = SecurityFilterFactory.class)</emphasis> //Filter "
+"factory with parameters\n"
+"                        })\n"
+"                        public class Driver { ... }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:362
+#, no-c-format
+msgid "Each named filter points to an actual filter implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:364
+#, no-c-format
+msgid ""
+"public class BestDriversFilter extends <emphasis\n"
+"                                                                                role="
+"\"bold\">org.apache.lucene.search.Filter</emphasis> {\n"
+"                        \n"
+"                        public BitSet bits(IndexReader reader) throws "
+"IOException {\n"
+"                        BitSet bitSet = new BitSet( reader.maxDoc() );\n"
+"                        TermDocs termDocs = reader.termDocs( new Term(\"score"
+"\", \"5\") );\n"
+"                        while ( termDocs.next() ) {\n"
+"                        bitSet.set( termDocs.doc() );\n"
+"                        }\n"
+"                        return bitSet;\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:366
+#, no-c-format
+msgid ""
+"<classname>BestDriversFilter</classname> is an example of a simple Lucene "
+"filter that will filter all results to only return drivers whose score is 5. "
+"The filters must have a no-arg constructor when referenced in a "
+"<literal>FulltextFilterDef.impl</literal>."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:371
+#, no-c-format
+msgid ""
+"The <literal>cache</literal> flag, defaulted to <literal>true</literal>, "
+"tells Hibernate Search to search the filter in its internal cache and reuses "
+"it if found."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:375
+#, no-c-format
+msgid ""
+"Note that, usually, filter using the <classname>IndexReader</classname> are "
+"wrapped in a Lucene <classname>CachingWrapperFilter</classname> to benefit "
+"from some caching speed improvement. If your Filter creation requires "
+"additional steps or if the filter you are willing to use does not have a no-"
+"arg constructor, you can use the factory pattern:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:382
+#, no-c-format
+msgid ""
+"@Entity\n"
+"                        @Indexed\n"
+"                        @FullTextFilterDef(name = \"bestDriver\", impl = "
+"BestDriversFilterFactory.class) //Filter factory\n"
+"                        public class Driver { ... }\n"
+"                        \n"
+"                        public class BestDriversFilterFactory {\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Factory</emphasis>\n"
+"                        public Filter getFilter() {\n"
+"                        //some additional steps to cache the filter results "
+"per IndexReader\n"
+"                        Filter bestDriversFilter = new BestDriversFilter();\n"
+"                        return new CachingWrapperFilter(bestDriversFilter);\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:384
+#, no-c-format
+msgid ""
+"Hibernate Search will look for a <literal>@Factory</literal> annotated "
+"method and use it to build the filter instance. The factory must have a no-"
+"arg constructor. For people familiar with JBoss Seam, this is similar to the "
+"component factory pattern, but the annotation is different!"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:390
+#, no-c-format
+msgid ""
+"Named filters comes in handy where the filters have parameters. For example "
+"a security filter needs to know which credentials you are willing to filter "
+"by:"
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:394
+#, no-c-format
+msgid ""
+"fullTextQuery = s.createFullTextQuery( query, Driver.class );\n"
+"                        fullTextQuery.enableFullTextFilter(\"security\")"
+"<emphasis role=\"bold\">.setParameter( \"level\", 5 )</emphasis>;"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:396
+#, no-c-format
+msgid ""
+"Each parameter name should have an associated setter on either the filter or "
+"filter factory of the targeted named filter definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Query.xml:399
+#, no-c-format
+msgid ""
+"public class SecurityFilterFactory {\n"
+"                        private Integer level;\n"
+"                        \n"
+"                        /**\n"
+"                        * injected parameter\n"
+"                        */\n"
+"                        <emphasis role=\"bold\">public void setLevel(Integer "
+"level)</emphasis> {\n"
+"                        this.level = level;\n"
+"                        }\n"
+"                        \n"
+"                        <emphasis role=\"bold\">@Key\n"
+"                                public FilterKey getKey()</emphasis> {\n"
+"                        StandardFilterKey key = new StandardFilterKey();\n"
+"                        key.addParameter( level );\n"
+"                        return key;\n"
+"                        }\n"
+"                        \n"
+"                        @Factory\n"
+"                        public Filter getFilter() {\n"
+"                        Query query = new TermQuery( new Term(\"level\", "
+"level.toString() ) );\n"
+"                        return new CachingWrapperFilter( new "
+"QueryWrapperFilter(query) );\n"
+"                        }\n"
+"                        }"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:401
+#, no-c-format
+msgid ""
+"Note the method annotated <classname>@Key</classname> and returning a "
+"<classname>FilterKey</classname> object. The returned object has a special "
+"contract: the key object must implement equals / hashcode so that 2 keys are "
+"equals if and only if the given Filter types are the same and the set of "
+"parameters are the same. In other words, 2 filter keys are equal if and only "
+"if the filters from which the keys are generated can be interchanged. The "
+"key object is used as a key in the cache mechanism."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:410
+#, no-c-format
+msgid "<classname>@Key</classname> methods are needed only if:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:414
+#, no-c-format
+msgid "you enabled the filter caching system (enabled by default)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:419
+#, no-c-format
+msgid "your filter has parameters"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:423
+#, no-c-format
+msgid ""
+"In most cases, using the <literal>StandardFilterKey</literal> implementation "
+"will be good enough. It delegates the equals/hashcode implementation to each "
+"of the parameters equals and hashcode methods."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:428
+#, no-c-format
+msgid ""
+"Why should filters be cached? There are two area where filter caching shines:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:433
+#, no-c-format
+msgid ""
+"the system does not update the targeted entity index often (in other words, "
+"the IndexReader is reused a lot)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:438
+#, no-c-format
+msgid ""
+"the Filter BitSet is expensive to compute (compared to the time spent to "
+"execute the query)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:443
+#, no-c-format
+msgid ""
+"Cache is enabled by default and use the notion of SoftReferences to dispose "
+"memory when needed. To adjust the size of the hard reference cache, use "
+"<literal>hibernate.search.filter.cache_strategy.size</literal> (defaults to "
+"128). Don't forget to use a <classname>CachingWrapperFilter</classname> when "
+"the filter is cacheable and the Filter's bits methods makes use of "
+"IndexReader."
+msgstr ""
+
+#. Tag: para
+#: Query.xml:450
+#, no-c-format
+msgid ""
+"For advance use of filter caching, you can implement your own "
+"<classname>FilterCachingStrategy</classname>. The classname is defined by "
+"<literal>hibernate.search.filter.cache_strategy</literal>."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:456
+#, no-c-format
+msgid "Optimizing the query process"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:458
+#, no-c-format
+msgid "Query performance depends on several criteria:"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:462
+#, no-c-format
+msgid "the Lucene query itself: read the literature on this subject"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:467
+#, no-c-format
+msgid ""
+"the number of object loaded: use pagination (always ;-) ) or index "
+"projection (if needed)"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:472
+#, no-c-format
+msgid ""
+"the way Hibernate Search interacts with the Lucene readers: defines the "
+"appropriate <xref linkend=\"Hibernate_Search-Architecture-Reader_Strategy\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: Query.xml:480
+#, no-c-format
+msgid "Native Lucene Queries"
+msgstr ""
+
+#. Tag: para
+#: Query.xml:482
+#, no-c-format
+msgid ""
+"If you wish to use some specific features of Lucene, you can always run "
+"Lucene specific queries. Check <xref linkend=\"Hibernate_Search-Lucene_Native"
+"\"/> for more informations."
+msgstr ""

Added: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Revision_History.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Revision_History.po	                        (rev 0)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/zh-CN/Revision_History.po	2009-06-18 00:52:53 UTC (rev 90363)
@@ -0,0 +1,33 @@
+# Language zh-CN translations for Hibernate_Search package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Search \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-06-18 00:50+0000\n"
+"PO-Revision-Date: 2009-06-18 00:50+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Danielle</firstname> <surname>Coulson</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Content reformat"
+msgstr ""




More information about the jboss-cvs-commits mailing list