org.neo4j.index.lucene
Class LuceneFulltextQueryIndexService

java.lang.Object
  extended by org.neo4j.index.impl.GenericIndexService
      extended by org.neo4j.index.lucene.LuceneIndexService
          extended by org.neo4j.index.lucene.LuceneFulltextIndexService
              extended by org.neo4j.index.lucene.LuceneFulltextQueryIndexService
All Implemented Interfaces:
IndexService

public class LuceneFulltextQueryIndexService
extends LuceneFulltextIndexService

A LuceneFulltextIndexService which treats the value in getNodes(String, Object) as a Lucene query, given in the Lucene query syntax. See more information at http://wiki.neo4j.org/content/Indexing_with_IndexService#A_great_subclass_to_LuceneFulltextIndexService


Field Summary
 
Fields inherited from class org.neo4j.index.lucene.LuceneFulltextIndexService
DOC_INDEX_SOURCE_KEY, FULLTEXT_DIR_NAME_POSTFIX
 
Fields inherited from class org.neo4j.index.lucene.LuceneIndexService
DEFAULT_LAZY_SEARCH_RESULT_THRESHOLD, DIR_NAME, DOC_ID_KEY, DOC_INDEX_KEY
 
Constructor Summary
LuceneFulltextQueryIndexService(GraphDatabaseService graphDb)
           
 
Method Summary
protected  org.apache.lucene.search.Query formQuery(String key, Object value)
           
 org.apache.lucene.queryParser.QueryParser.Operator getDefaultQueryOperator(String key, Object value)
          Returns the default operator (AND or OR) used when parsing the query.
 IndexHits<Node> getNodes(String key, Object value)
          Here the value is treated as a lucene query, http://lucene.apache.org/java/2_9_1/queryparsersyntax.html So if you've indexed node (1) with value "Andy Wachowski" and node (2) with "Larry Wachowski" you can expect this behaviour if you query for: "andy" --> (1) "Andy" --> (1) "wachowski" --> (1), (2) "+wachow* +larry" --> (2) "andy AND larry" --> "andy OR larry" --> (1), (2) "larry Wachowski" --> (1), (2) The default AND/OR behaviour can be changed by overriding getDefaultQueryOperator(String, Object).
 
Methods inherited from class org.neo4j.index.lucene.LuceneFulltextIndexService
enableCache, getDataSourceClass, getDirName, getXaResourceId
 
Methods inherited from class org.neo4j.index.lucene.LuceneIndexService
getLazySearchResultThreshold, getNodes, getSingleNode, index, indexThisTx, instantiateIdToNodeIterator, removeIndexThisTx, setLazySearchResultThreshold, shutdown
 
Methods inherited from class org.neo4j.index.impl.GenericIndexService
beginTx, getGraphDb, getQueue, removeIndex, setIsolation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LuceneFulltextQueryIndexService

public LuceneFulltextQueryIndexService(GraphDatabaseService graphDb)
Parameters:
graphDb - the GraphDatabaseService to use.
Method Detail

formQuery

protected org.apache.lucene.search.Query formQuery(String key,
                                                   Object value)
Overrides:
formQuery in class LuceneFulltextIndexService

getDefaultQueryOperator

public org.apache.lucene.queryParser.QueryParser.Operator getDefaultQueryOperator(String key,
                                                                                  Object value)
Returns the default operator (AND or OR) used when parsing the query. See more information at http://lucene.apache.org

Parameters:
key - the index key.
value - the lucene query.
Returns:
the default operator (AND or OR ) used when parsing the query.

getNodes

public IndexHits<Node> getNodes(String key,
                                Object value)
Here the value is treated as a lucene query, http://lucene.apache.org/java/2_9_1/queryparsersyntax.html So if you've indexed node (1) with value "Andy Wachowski" and node (2) with "Larry Wachowski" you can expect this behaviour if you query for: The default AND/OR behaviour can be changed by overriding getDefaultQueryOperator(String, Object).

Specified by:
getNodes in interface IndexService
Overrides:
getNodes in class LuceneFulltextIndexService
Parameters:
key - the key for index
value - the value for index
Returns:
nodes that have been indexed with key and value


Copyright © 2010 Neo4j. All Rights Reserved.