Dear wiki user,

You have subscribed to a wiki page "Couchdb Wiki" for change notification.

The page "FullTextSearch" has been deleted by JoanTouzet:

https://wiki.apache.org/couchdb/FullTextSearch?action=diff&rev1=12&rev2=13

Comment:
very outdated

- #redirect Full_text_search
- == Fulltext Indexing and Searching ==
- CouchDB comes with fulltext indexing support using 
[[http://lucene.apache.org|Apache Lucene]] as a reference implementation. The 
integration is modular and allows any fulltext search technology to be used in 
combination with CouchDB.
  
- === Index interface ===
- 
- CouchDB uses stdio for interfacing to the search engine,whenever a document 
is changed the name of the database 
- containing the document is sent to stdout.
- 
- CouchDB does not expect to receive anything on stdin (read: it will crash if 
it does).
- 
- ==== setup ====
- 
- The indexer is started by CouchDB using the command line specified in
- the couch.ini configuration parameter:
- 
- {{{
- DbUpdateNotificationProcess
- }}}
- 
- 
- === Search interface ===
- 
- CouchDB again uses stdio to interface to the searcher part.
- 
- Currently this interface is not exposed through Futon, so to try it out you 
need to
- start CouchDB with the 
- interactive option -i to get an Erlang shell.
- 
- From there you can write search queries like:
- 
- {{{
- couch_ft_query:execute("database", "+ query +string").
- }}}
- 
- 
- For this example the string "database\n" followed by "+ query +string\n" is
- transmitted to stdout.
- 
- The result must follow this exact scheme to ensure that CouchDB understands
- it. The first line must be "ok\n". The next two lines contain the id of the 
- highest ranking document that matches the query and the score or rank: 
- "docid1\n7\n". These two lines are repeated for all matching documents. 
- The end of the result must be signaled with an empty newline "\n\n". 
- 
- In case of an error, the first line consists of "error\n" and the second
- line of the error message: "Invalid Foo Condition\n".
- 
- ==== setup ====
- The searcher is started by CouchDB using the command line specified in
- the couch.ini configuration parameter:
- 
- {{{
- FullTextSearchQueryServer
- }}}
- 
- 
- === Lucene reference implementation ===
- 
- ==== RFC: Use of special design document ====
- Please not that this is currently in discussion and not actually set in code.
- A database to index must contain a special design document in this format:
- 
- {{{
- {
-   "_id":"_design/fulltextsearch",
-   "_rev":"123",
-   "fulltext_options": {
-     "views": {
-       "names" : {"index":"view-value", "return":"document"},
-       "cities": {"index":"view-key", "return":"view"}
-     }
-   }
- }
- }}}
- 
- The Lucene indexer uses the defined views in this document to guide the 
indexing
- process. 
- 
- In this example the views "names" and "cities" must also be defined in the 
database. 
- Lucene will index the "view-value" for the "names" view and return documents 
as
- search results, 
- for the "cities" view it will index the view-key and return the view in 
search results.
- 
- For info on views in CouchDB see: [[Views]]
- 
- 
- ==== Dependencies ====
- The Lucene indexer depends on these projects .jar files to work
-  * couchdb4j.jar (see below)
-    * commons-beanutils.jar
-    * commons-codec-1.3.jar
-    * commons-collections.jar
-    * commons-httpclient-3.1.jar
-    * commons-lang.jar
-    * commons-logging-1.1.jar
-    * ezmorph-1.0.3.jar
-    * json-lib-2.0-jdk15.jar
-  * lucene-core-2.3.1.jar
- 
- Note: all the couchdb4j dependencies (as you can see some have not
- version info supplied) is probably easily checked out from the
- couchdb4j repository (see below).
- 
- Note: at this time of writing couchdb4j needs to be patched using the patches
- specified in issue 6 and 8 
- on the coucdb4j issue tracking list: 
- 
- http://code.google.com/p/couchdb4j/issues/list
- 
- So checkout trunk patch and build.
- 
- At least Java version 5 is needed.
- 
- ==== Compiling ====
- The Lucene search engine is not build as part of the CouchDB. 
- 
- You need to:
-  * setup a Java developer environment (at least version 5). 
-  * Checkout CouchDB source.
-  * Change directory to src/fulltext/lucene
-  * Compile using javac with CLASSPATH with the needed dependencies (listed 
above)
-  * Do: jar cf !CouchLucene.jar *.class 
- 
- As result you should get a file !CouchLucene.jar to include in your CLASSPATH 
at
- runtime.
- 
- ==== Runtime setup ====
- You need a path to your java runtime (at least version 5).
- You have to setup your java CLASSPATH to contain all the .jar files listed in 
the
- dependency list,
- alternatively you can specify it on the command line defined for the .ini 
options like:
- 
- {{{
- FullTextSearchQueryServer=java -cp /path/to/couchdb4j/lib/couchdb4j.jar:...
- LuceneSearcher
- DbUpdateNotificationProcess=java -cp /path/to/couchdb4j/lib/couchdb4j.jar:...
- LuceneIndexer
- }}}
- 
- Note above example works on Unix like OS's
- 

Reply via email to