This project is not being actively maintained. If you are interested in helping to maintain this project, take a look at the open issues on GitHub and submit pull requests. |
CouchDB Lucene Queries
If you are using the CouchDB-Lucene integration you can make use of Lucene querying with Doctrine CouchDB ODM.
See the docs of CouchDB Lucene how you can create a design document with views for Lucene.
You can use the design-doc API of Doctrine, for example:
<?phpuse Doctrine\ODM\CouchDB\View\DesignDocument;class LuceneQueryDesignDoc implements DesignDocument{ public function getData() { return array( "fulltext" => array( "by_name" => array( "index" => "function(doc) { var ret = new Document(); ret.add(doc.name); ret.add(doc.type, {field: \"type\"}); return ret; }" ) ), ); }}
You can use the CouchDB Client to create the design document for this lucene view.
When you have created a CouchDB Lucene view you can query it with Doctrine using
the DocumentManager#createLuceneQuery($designDocName, $viewName) method. A lucene
query instance extends AbstractQuery like the Doctrine CouchDB Map-Reduce queries.
An example showing all the functionalities of a lucene query looks like:
$query = $dm->createLuceneQuery("designDocName", "viewName");$result = $query->setQuery("+bar -foo") ->setSkip(20) ->setLimit(100) ->setIncludeDocs(true) ->onlyDocs(true) ->setStale(false) ->setAnalyzer($analyzer) ->execute();
The result works as explained in the View and Map-Reduce Queries section.
