public abstract class LuceneIndex<T extends Element> extends Object implements OracleIndex<T>
EDGE_ID_PROP, EDGE_LABEL_PROP, END_NODE_ID_PROP, m_dtValues, START_NODE_ID_PROP, TYPE_DT_BOOL, TYPE_DT_BYTE, TYPE_DT_CHAR, TYPE_DT_DATE, TYPE_DT_DOUBLE, TYPE_DT_FLOAT, TYPE_DT_INTEGER, TYPE_DT_JSON, TYPE_DT_LONG, TYPE_DT_SERIALIZABLE, TYPE_DT_SHORT, TYPE_DT_SPATIAL, TYPE_DT_STRING, TYPE_DT_URI, VERTEX_ID_PROP| Modifier and Type | Method and Description |
|---|---|
void |
add(T element)
Adds a new Element into the Element Index
|
String |
appendDatatypesSuffixToKey(String key,
Class dtValue)
This operation will append the data type suffix to the key
based on the LuceneIndex configuration.
|
String |
appendDatatypesSuffixToValue(Object value,
Class dtValue)
This operation will append the data type suffix to the String representation of the
given value based on the LuceneIndex configuration.
|
String |
buildSearchTerm(String key,
Object value)
Builds a search term query expression in the syntax required by this index.
|
String |
buildSearchTerm(String key,
Object value,
Class dtValue)
Builds a search term query expression in the syntax required by this index.
|
org.apache.lucene.index.Term |
buildSearchTermObject(String key,
Object value,
Class dtValue)
Builds a Term object using the given key/Value pair by transforming
the K/V into a query expression in the syntax required by this index.
|
void |
clearIndex()
Clears all data stored in the index.
|
void |
close()
Closes this LuceneIndex object
|
void |
commit()
Commit changes
|
long |
count(String key,
Object value)
Counts all the matching elements that have a particular key/value property within the index
|
long |
count(String key,
Object value,
boolean acceptWildcard)
Counts all the matching elements that have a particular key/value property within the index
|
long |
count(String key,
Object value,
Class dtValue,
boolean acceptWildcard)
Counts all the matching elements that have a particular key/value property within the index
|
void |
dropIndex()
Clears all data stored in the index.
|
abstract CloseableIterable<T> |
get(Object query)
Gets an Iterable object with all the matching elements that match the
given query object.
|
CloseableIterable<T> |
get(String key,
Object value)
Gets an Iterable object with all the matching elements that have a particular key/value property within
the index
|
CloseableIterable<T> |
get(String key,
Object value,
boolean acceptWildcard)
Gets an Iterable object with all the matching elements that have a particular key/value property within
the index
|
abstract CloseableIterable<T> |
get(String key,
Object value,
Class dtValue,
boolean acceptWildcard)
Gets an Iterable object with all the matching elements that have a particular key/value property within
the index
|
org.apache.lucene.store.Directory |
getDirectory(int index)
Get a
Directory object for the specified subdirectory ID. |
String |
getDirectoryName()
Gets the directory name for this index.
|
String |
getDocIdentifier()
Get index document's identifier.
|
String |
getGraphName()
Get the name of the associated graph
|
Class<T> |
getIndexClass()
Gets the class associated to this index
|
String |
getIndexName()
Gets the name of this index instance.
|
LuceneParameters |
getIndexParameters()
Gets the index parameters associated to this index.
|
OracleDirectory |
getOracleDirectory()
Gets the Oracle Directory storing all index data.
|
OracleIndexParameters |
getOracleIndexParameters()
Gets the OracleIndexParameters associated to this index
|
org.apache.lucene.search.SearcherManager |
getOracleSearcherManager(int index)
Gets the SearcherManager object that executes read operations over the
index stored in the specified directory without looking in the SearcherManager
cache
|
org.apache.lucene.search.SearcherManager |
getOracleSearcherManager(int index,
boolean useCache)
Gets the SearcherManager object that executes read operations over the
index stored in the specified directory.
|
Parameter<String,Object>[] |
getParameters()
Gets the Parameters associated to this index.
|
abstract CloseableIterable<T>[] |
getPartitioned(Object[] connections,
Object query,
int startShardId)
Gets an array of
CloseableIterable objects that hold all the elements
with an attribute matching the Query object. |
CloseableIterable<T>[] |
getPartitioned(Object[] connections,
String key,
Object value,
boolean acceptWildcard,
int startShardId)
Gets an array of
CloseableIterable objects that hold all the elements
with an attribute matching the given K/V pair. |
abstract CloseableIterable<T>[] |
getPartitioned(Object[] connections,
String key,
Object value,
Class dtValue,
boolean acceptWildcard,
int startShardId)
Gets an array of
CloseableIterable objects that hold all the elements
with an attribute matching the given K/V pair. |
org.apache.lucene.search.SearcherFactory |
getSearcherFactory()
Gets the searcher factory associated to this index
|
int |
getTotalShards()
Gets the number of shards (sub-directories) in this index.
|
boolean |
isAutoIndex()
Returns true if this is an auto index
|
void |
put(String key,
Object value,
T element)
Indexes an element by a key and a value.
|
void |
put(String key,
Object value,
T element,
OracleIndexWriter[] indexWriters)
Indexes an element by a key and a value.
|
CloseableIterable<T> |
query(String key,
Object value)
Query for all the elements satisfying the specified K/V property within
the index
|
CloseableIterable<T> |
query(String key,
Object value,
boolean useWildcards)
Query for all the elements satisfying the specified K/V property within
the index
|
void |
remove(String key,
Object value,
Class dtValue,
T element,
OracleIndexWriter[] indexWriters)
Removes an element indexed by a particular key/value.
|
void |
remove(String key,
Object value,
T element)
Removes an element indexed by a particular key/value.
|
void |
remove(String key,
Object value,
T element,
OracleIndexWriter[] indexWriters)
Removes an element indexed by a particular key/value.
|
void |
remove(T element)
Deletes a element from this index
|
void |
removeAll(String key)
Removes all the elements from the index matching the specified key.
|
void |
removeAll(String key,
OracleIndexWriter[] indexWriters)
Removes all the elements from the index matching the specified key.
|
public void add(T element)
add in interface OracleIndex<T extends Element>element - an Element object.IOExceptionpublic String appendDatatypesSuffixToKey(String key, Class dtValue)
key - the key of the K/V propertydtValue - the data type of the value objectpublic String appendDatatypesSuffixToValue(Object value, Class dtValue)
value - the value of the K/V propertydtValue - the data type of the value objectpublic String buildSearchTerm(String key, Object value)
buildSearchTerm in interface OracleIndex<T extends Element>key - the key of the K/V propertyvalue - the value object of the K/V propertypublic String buildSearchTerm(String key, Object value, Class dtValue)
buildSearchTerm in interface OracleIndex<T extends Element>key - the key of the K/V propertyvalue - the value object of the K/V propertydtValue - the data type of the value objectpublic org.apache.lucene.index.Term buildSearchTermObject(String key, Object value, Class dtValue)
key - the key of the K/V propertyvalue - the value object of the K/V propertydtValue - the data type of the value objectTerm object.public void clearIndex()
clearIndex in interface OracleIndex<T extends Element>public void close()
close in interface OracleIndex<T extends Element>public void commit()
commit in interface OracleIndex<T extends Element>public final long count(String key, Object value)
count in interface Index<T extends Element>key - the name of the property. It MUST not be NULL. If the key is not found in the
index, the result will be 0.value - the value object of the property. It can be NULL which will cause all elements with the given key to be returned.CloseableIterable object.public final long count(String key, Object value, boolean acceptWildcard)
count in interface OracleIndex<T extends Element>key - the name of the property. It MUST not be NULL. If the key is not found in the
index, the result will be 0.value - the value object of the property. It can be NULL which will cause all elements with the given key to be returned.acceptWildcard - specifies if wild cards can be used in the value object.
the indexCloseableIterable object.public long count(String key, Object value, Class dtValue, boolean acceptWildcard)
count in interface OracleIndex<T extends Element>key - the name of the property. It MUST not be NULL. If the key is not found in the
index, the result will be 0.value - the value object of the property. It can be NULL which will cause all elements with the given key to be returned.dtValue - the class representing the datatype of the property value. This can be
used to cast the property value to a different datatype. For example, if the value is "3.01"
and dtValue is Float.Class, then this value will be treated as a 3.01f.acceptWildcard - specifies if wild cards can be used in the value object.
the indexCloseableIterable object.public void dropIndex()
dropIndex in interface OracleIndex<T extends Element>public abstract CloseableIterable<T> get(Object query)
get in interface OracleIndex<T extends Element>query - a object representing the text query to execute.CloseableIterable object.public final CloseableIterable<T> get(String key, Object value)
get in interface Index<T extends Element>key - the name of the property. It MUST not be NULL. If the key is not found in the
index, the result will be 0.value - the value object of the property. It can be NULL which will cause all elements with the given key to be returned.CloseableIterable object.public final CloseableIterable<T> get(String key, Object value, boolean acceptWildcard)
get in interface OracleIndex<T extends Element>key - the name of the property. It MUST not be NULL. If the key is not found in the
index, the result will be 0.value - the value object of the property. It can be NULL which will cause all elements with the given key to be returned.acceptWildcard - specifies if wild cards can be used in the value object.
the indexCloseableIterable object.public abstract CloseableIterable<T> get(String key, Object value, Class dtValue, boolean acceptWildcard)
get in interface OracleIndex<T extends Element>key - the name of the property. It MUST not be NULL. If the key is not found in the
index, the result will be 0.value - the value object of the property. It can be NULL which will cause all elements with the given key to be returned.dtValue - the class representing the datatype of the property value. This can be
used to cast the property value to a different datatype. For example, if the value is "3.01"
and dtValue is Float.Class, then this value will be treated as a 3.01f.acceptWildcard - specifies if wild cards can be used in the value object.
the indexCloseableIterable object.public org.apache.lucene.store.Directory getDirectory(int index)
Directory object for the specified subdirectory ID.index - the subdirectory ID. The directories in the Lucene index are a positive
number from the range of [0 to N - 1] where N is the total number of subdirectories.public final String getDirectoryName()
getDirectoryName in interface OracleIndex<T extends Element>public String getDocIdentifier()
getDocIdentifier in interface OracleIndex<T extends Element>public final String getGraphName()
getGraphName in interface OracleIndex<T extends Element>public final Class<T> getIndexClass()
OracleIndexgetIndexClass in interface Index<T extends Element>getIndexClass in interface OracleIndex<T extends Element>public final String getIndexName()
getIndexName in interface Index<T extends Element>public LuceneParameters getIndexParameters()
LuceneParameters object.public OracleDirectory getOracleDirectory()
OracleDirectory object.public OracleIndexParameters getOracleIndexParameters()
OracleIndexgetOracleIndexParameters in interface OracleIndex<T extends Element>public org.apache.lucene.search.SearcherManager getOracleSearcherManager(int index)
throws IOException
index - the subdirectory ID. The directories in the Lucene index are a positive
number from the range of [0 to N - 1] where N is the total number of subdirectories.SearcherManager object.IOExceptionpublic org.apache.lucene.search.SearcherManager getOracleSearcherManager(int index,
boolean useCache)
throws IOException
index - the subdirectory ID. The directories in the Lucene index are a positive
number from the range of [0 to N - 1] where N is the total number of subdirectories.SearcherManager object.IOExceptionpublic Parameter<String,Object>[] getParameters()
getParameters in interface OracleIndex<T extends Element>Parameter array.public abstract CloseableIterable<T>[] getPartitioned(Object[] connections, Object query, int startShardId)
CloseableIterable objects that hold all the elements
with an attribute matching the Query object. This object can be either a String text search query,
or a Lucene Query object. Each edge in the CloseableIterable array
uses a separate connection provided to fetch a subset of the results from a corresponding Lucene sub-directory.
Note that we assign an integer ID (in the range of [0, N - 1]) to all the sub-directories in a Lucene index with N shards.
The subset of shards (subdirectories) queried will consist of those shards with ID value in the range of
[startShardId, startShardId - 1 + size of connections array].getPartitioned in interface OracleIndex<T extends Element>connections - an array of connections to the Lucene index Each edge of this array should be of type
SearcherManager. See getOracleSearcherManager(int).query - a a object representing the text query to execute.startShardId - the ID of the starting shard.CloseableIterable object.public final CloseableIterable<T>[] getPartitioned(Object[] connections, String key, Object value, boolean acceptWildcard, int startShardId)
CloseableIterable objects that hold all the elements
with an attribute matching the given K/V pair. Each element in the CloseableIterable array
uses a separate connection provided to fetch a subset of the results from a corresponding Lucene sub-directory.
Note that we assign an integer ID (in the range of [0, N - 1]) to all the sub-directories in a Lucene index with N shards.
The subset of shards (subdirectories) queried will consist of those shards with ID value in the range of [startShardId, startShardId - 1 + size of connections array].getPartitioned in interface OracleIndex<T extends Element>connections - an array of connections to the index. Each element of this array should be of type
SearcherManager. See getOracleSearcherManager(int).key - the key of a propertyvalue - the value object of the property.acceptWildcard - specifies if wild cards can be used in the value object.startShardId - the ID of the starting shard.CloseableIterable object.public abstract CloseableIterable<T>[] getPartitioned(Object[] connections, String key, Object value, Class dtValue, boolean acceptWildcard, int startShardId)
CloseableIterable objects that hold all the elements
with an attribute matching the given K/V pair. Each element in the CloseableIterable array
uses a separate connection provided to fetch a subset of the results from a corresponding Lucene sub-directory.
Note that we assign an integer ID (in the range of [0, N - 1]) to all the sub-directories in a Lucene index with N shards.
The subset of shards (subdirectories) queried will consist of those shards with ID value in the range of [startShardId, startShardId - 1 + size of connections array].getPartitioned in interface OracleIndex<T extends Element>connections - an array of connections to the Lucene index. Each element of this array should be of type
SearcherManager. See getOracleSearcherManager(int).key - the key of a propertyvalue - the value object of the property.dtValue - the class representing the datatype of the property value. This can be
used to cast the property value to a different datatype. For example, if the value is "3.01"
and dtValue is Float.Class, then this value will be treated as a 3.01f.acceptWildcard - specifies if wild cards can be used in the value object.startShardId - the ID of the starting shard.CloseableIterable object.public org.apache.lucene.search.SearcherFactory getSearcherFactory()
public int getTotalShards()
getTotalShards in interface OracleIndex<T extends Element>public boolean isAutoIndex()
public void put(String key, Object value, T element, OracleIndexWriter[] indexWriters)
OracleIndexWriter for all the sub-directories in the text
index reduce the number of open/commit/close operations to Apache Lucene.
The user is responsible of calling the commit operation on each index
writer so the changes executed by this operation are persisted into the
text index.key - the key to index the element by.value - the value to index the element by.element - the element to index.indexWriters - if not null, the cache of indexWriters to use, this
avoids opening/closing index writers at flush time, but
locks writing operations over the index.public final CloseableIterable<T> query(String key, Object value)
query in interface Index<T extends Element>key - the key of the K/V propertyvalue - the value object of the K/V propertyCloseableIterable object.public final CloseableIterable<T> query(String key, Object value, boolean useWildcards)
query in interface OracleIndex<T extends Element>key - the key of the K/V propertyvalue - the value object of the K/V propertyuseWildcards - specifies if wild cards can be used in the value object.CloseableIterable object.public void remove(String key, Object value, Class dtValue, T element, OracleIndexWriter[] indexWriters)
OracleIndexWriter for all the sub-directories in the text
index reduce the number of open/commit/close operations to Apache Lucene.
The user is responsible of calling the commit operation on each index
writer so the changes executed by this operation are persisted into the
text index.key - the key of the indexed element.value - the value of the indexed element.dtValue - the data type class of the indexed element.element - the element to remove given the key/value pair.indexWriters - if not null, the cache of indexWriters to use, this
avoids opening/closing index writers at flush time, but
locks writing operations over the index.public void remove(String key, Object value, T element)
public void remove(String key, Object value, T element, OracleIndexWriter[] indexWriters)
key - the key of the indexed element.value - the value of the indexed element.element - the element to remove given the key/value pair.indexWriters - if not null, the cache of indexWriters to use, this
avoids opening/closing index writers at flush time, but
locks writing operations over the index.public void remove(T element)
remove in interface OracleIndex<T extends Element>element - an Element object.IOExceptionpublic void removeAll(String key)
removeAll in interface OracleIndex<T extends Element>key - the key to remove from the index.public void removeAll(String key, OracleIndexWriter[] indexWriters)
OracleIndexWriter for all the sub-directories in the text
index reduce the number of open/commit/close operations to Apache Lucene.
The user is responsible of calling the commit operation on each index
writer so the changes executed by this operation are persisted into the
text index.key - the key to remove from the index.indexWriters - if not null, the cache of indexWriters to use, this
avoids opening/closing index writers at flush time, but
locks writing operations over the index.Copyright © 2017 Oracle and/or its affiliates. All Rights Reserved.