You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by Apache Wiki <wi...@apache.org> on 2010/08/12 00:19:19 UTC
[Couchdb Wiki] Update of "Full_text_search" by RobertNewson
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.
The "Full_text_search" page has been changed by RobertNewson.
The comment on this change is: Documentation here was always stale. Removed all but the links to the origin site..
http://wiki.apache.org/couchdb/Full_text_search?action=diff&rev1=7&rev2=8
--------------------------------------------------
Lucene integration with CouchDB is available with an external project called couchdb-lucene (http://github.com/rnewson/couchdb-lucene).
-
- === Index interface ===
-
- couchdb-lucene's indexing process is configured with update notification as follows;
-
- {{{
- [update_notification]
- indexer=/usr/bin/java -jar /path/to/couchdb-lucene-<version>-jar-with-dependencies.jar -index
- }}}
-
- === Search interface ===
-
- couchdb-lucene's search process is configured as an external process accessible via an httpd_handler as follows;
-
- {{{
- [couchdb]
- os_process_timeout=60000 ; increase the timeout to 60 seconds.
-
- [external]
- fti=/usr/bin/java -jar /path/to/couchdb-lucene-<version>-jar-with-dependencies.jar -search
-
- [httpd_db_handlers]
- _fti = {couch_httpd_external, handle_external_req, <<"fti">>}
- }}}
-
- You can install the httpd_handler as anything you like, but the name must match between the [external] and [httpd_db_handlers] section. The rest of the document assumes 'fti'.
-
- q:: the query to run (e.g, subject:hello)
- sort:: the comma-separated fields to sort on. Prefix with / for ascending order and \ for descending order (ascending is the default if not specified).
- limit:: the maximum number of results to return
- skip:: the number of results to skip
- include_docs:: whether to include the source docs
- stale=ok:: If you set the stale option ok, couchdb-lucene may not perform any refreshing on the index. Searches may be faster as Lucene caches important data (especially for sorting). A query without stale=ok will use the latest data committed to the index.
- debug:: if false, a normal application/json response with results appears. if true, an pretty-printed HTML blob is returned instead.
-
- === Lucene reference implementation ===
-
- You must supply a index function in order to enable couchdb-lucene as by default, nothing will be indexed.
-
- You may add any number of index views in any number of design documents. All searches will be constrained to documents emitted by those view functions.
-
- Declare your functions as follows;
-
- {{{
- {
- "views": {
- // conventional view code goes here
- },
- "fulltext": {
- "by_subject": {
- "defaults": { "store":"yes" },
- "index":"function(doc) { var ret=new Document(); ret.add(doc.subject); return ret }"
- }
- }
- }
- }}}
-
- You can perform queries within this view with a URL such as;
-
- {{{
- http://localhost:5984/dbname/_fti/design_doc_name/by_subject?q=hello
- }}}
-
- ==== Dependencies ====
-
- couchdb-lucene uses Maven 2 to manage dependencies, so you shouldn't have to deal with them directly.
-
- 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 with git clone git://github.com/rnewson/couchdb-lucene.git
- * cd couchdb-lucene
- * type 'mvn'
-
- As result you should get a file target/couchdb-lucene-<version>-jar-with-dependencies.jar.
-