public abstract class LuceneIndex<T extends Element> extends Object implements OracleIndex<T>
EDGE_ID_PROP, EDGE_LABEL_PROP, END_NODE_ID_PROP, 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_LONG, TYPE_DT_SERIALIZABLE, TYPE_DT_SHORT, TYPE_DT_STRING, 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 edges
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.IOException
public 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 edges 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 edges 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 edges 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 Query
object.
the indexCloseableIterable
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 edges 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 edges 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 edges 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()
OracleIndex
getIndexClass
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()
OracleIndex
getOracleIndexParameters
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.IOException
public 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.IOException
public 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 edges
with an attribute matching the 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 Query
object.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.IOException
public 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 © 2016 Oracle and/or its affiliates. All Rights Reserved.