Package com.apple.foundationdb.record.lucene
LUCENE
indexes and queries.
Lucene indexes are backed by FDB, using FDBDirectory
to implement a virtual file system holding the inverted index files.
This is not fundamental, though. This maintainer used standard IndexWriter
and IndexReader
, gotten with
FDBDirectoryManager.getIndexWriter(com.apple.foundationdb.tuple.Tuple, java.lang.Integer, com.apple.foundationdb.record.lucene.LuceneAnalyzerWrapper)
getIndexWriter},
for interfacing to Lucene.
The index definition can be grouped. Each group represents an entirely separate Lucene index.
Within a group, each record is represented by a single Lucene document.
Fields to be included in the document are given by a concat
expression. Unlike most indexes, the order of fields here does not matter for what queries are possible.
Repeated record fields turn into multiple document fields.
Fields in nested submessages, possibly repeated, are flattened into document fields with longer field names, representing the path through the record.
Basic support for correlation is provided by allowing a nested field's string value to contribute to the document field name.
This is well suited to map
-like fields where the keys are from a small, known set.
Fields are designated for full text tokenization, for storage in the Lucene document, and as refining field naming, by means of function key expressions.
The standard form of a Lucene index scan is a Lucene search query
.
A special LucenePlanner
is able to synthesize these from regular query expressions and Lucene search syntax.
-
ClassDescriptionA CJK Analyzer which applies a minimum and maximum token length to non-CJK tokens.A TokenFilterFactory that creates Alphanumeric Length filters.Choose an
Analyzer
given texts.An analyzer that is used to analyze the auto_complete input.An analyzer that can handle emails, CJK, and synonyms.Factory to build index and queryAnalyzer
forEmailCjkSynonymAnalyzer
.Provide a combination of analyzers for multiple fields of one Lucene index.Each implementation ofAnalyzer
should have its own implementation of this factory interface to provide instances of the analyzers for indexing and query to aLuceneAnalyzerRegistry
.Registry forAnalyzerChooser
s.Default implementation of theLuceneAnalyzerRegistry
.The type used to determine how theAnalyzer
built byLuceneAnalyzerFactory
is used.A wrapper forAnalyzer
and its unique identifier.Factory to build index and queryAnalyzer
for auto-complete suggestions.This class provides some helpers for auto-complete functionality using Lucene auto complete suggestion lookup.Helper class to capture token information synthesized from a search key.Auto complete query clause from string using Lucene search syntax.Binder for a conjunction of other clauses.Wrapper of a LuceneQuery
that contains accessible field name, comparison type, and comparand.Utility class for methods related to synchronizing Futures.An exception that is thrown when the async to sync operation times out.Helper class for convertingFDBRecord
s to Lucene documents.LuceneDocumentFromRecord.FDBRecordSource<M extends Message>A RecordSource based on an FDBRecord.AStoreTimer
events associated with Lucene operations.Count events.Detail events.Main events.Size Events.Wait events.Utility class for converting Lucene Exceptions to/from Record layer ones.A Wrapper around the transaction-too-old exception that gets thrown through Lucene as an IOException.Lucene function key expressions.The key function for Lucene field configuration.Thelucene_field_name
key function.Key function representing one of the Lucene built-in sorting techniques.Thelucene_sorted
key function.Thelucene_stored
key function.Thelucent_text
key function.Implemention of Lucene index key functions.Key function names for Lucene indexes.Option keys forLuceneFunctionNames.LUCENE_FULL_TEXT_FIELD_INDEX_OPTIONS
.Get metadata information about a given lucene index.The root expression of aLUCENE
index specifies how select fields of a record are mapped to fields of a Lucene document.An actual document / document meta-data.Information about how a document field is derived from a record field.Possible types for document fields.An actual record / record meta-data.A utility class to build a partial record for an auto-complete suggestion value, with grouping keys if there exist.The copier to populate the lucene auto complete suggestion as a value for the field where it is indexed from.Deserializer.Index maintainer for Lucene Indexes backed by FDB.Index Maintainer Factory for Lucene Indexes.Options for use with Lucene indexes.Lucene query plan for including search-related scan parameters.Deserializer.Index Scrubbing Toolbox for a Lucene index maintainer.Provide a lucene specific reason for detecting a "missing" index entry.Lucene query plan that allows to make spell-check suggestions.An index on the tokens in a text field.Validator for Lucene indexes.Record Layer's implementation ofInfoStream
that publishes messages as TRACE logs.Lucene specific logging keys.Metadata information about a lucene index, in response toLuceneGetMetadataInfo
.Information about an individual Lucene directory.Binder for a negation of clauses.Manage partitioning info for a logical, partitioned lucene index, in which each partition is a separate physical lucene index.encapsulate and manage additional log messages when repartitioning.A planner to implement lucene query planning so that we can isolate the lucene functionality to a distinct package.Maintain a B-tree index of primary key to segment and doc id.Maintain a B-tree index of primary key to segment and doc id.Hook for getting back segment info during merge.Maintain a B-tree index of primary key to segment and doc id.Binder for a single query clause.Helper class to capture a bound query, i.e.A Query Component for Lucene that wraps the query supplied.Query clause using aComparisons.Comparison
against a document field.Query clause from string using Lucene search syntax.Query clause from string using Lucene search syntax.The type of component.The list ofRecordLayerPropertyKey
for configuration of the lucene indexing for aFDBRecordContext
.This class is a Record Cursor implementation for Lucene queries.An IndexEntry based off a Lucene ScoreDoc.Manage repartitioning details (merging small partitions and splitting large ones).Convenience collection of data needed for repartitioning.Base class forIndexScanBounds
used byLUCENE
indexes.Base class forIndexScanParameters
used byLUCENE
indexes.Scan aLUCENE
index using a LuceneQuery
.Scan parameters for making aLuceneScanQuery
.Deserializer.The parameters for highlighting matching terms of a Lucene search.Scan aLUCENE
index for auto-complete suggestions.Scan parameters for making aLuceneScanSpellCheck
.Deserializer.IndexScanType
s for Lucene.Cursor over Lucene spell-check query results.A SynonymGraphFilterFactory which uses an underlying Registry to statically cache synonym mappings, which is _significantly_ more efficient when using lots of distinct analyzers (such as during highlighting, or with lots of parallel record stores).