public class MemoryIndexOffsetStrategy extends AnalysisOffsetStrategy
Analyzer
on content to get offsets and then populates a MemoryIndex
.Modifier and Type | Field and Description |
---|---|
private LeafReader |
leafReader |
private MemoryIndex |
memoryIndex |
private CharacterRunAutomaton |
preMemIndexFilterAutomaton |
analyzer
automata, field, phraseHelper, terms
Constructor and Description |
---|
MemoryIndexOffsetStrategy(java.lang.String field,
java.util.function.Predicate<java.lang.String> fieldMatcher,
BytesRef[] extractedTerms,
PhraseHelper phraseHelper,
CharacterRunAutomaton[] automata,
Analyzer analyzer,
java.util.function.Function<Query,java.util.Collection<Query>> multiTermQueryRewrite) |
Modifier and Type | Method and Description |
---|---|
private static CharacterRunAutomaton |
buildCombinedAutomaton(java.util.function.Predicate<java.lang.String> fieldMatcher,
BytesRef[] terms,
CharacterRunAutomaton[] automata,
PhraseHelper strictPhrases,
java.util.function.Function<Query,java.util.Collection<Query>> multiTermQueryRewrite)
Build one
CharacterRunAutomaton matching any term the query might match. |
java.util.List<OffsetsEnum> |
getOffsetsEnums(IndexReader reader,
int docId,
java.lang.String content)
The primary method -- return offsets for highlightable words in the specified document.
|
private static FilteringTokenFilter |
newKeepWordFilter(TokenStream tokenStream,
CharacterRunAutomaton charRunAutomaton) |
getOffsetSource, tokenStream
createAutomataOffsetsFromTerms, createOffsetsEnumsFromReader, getField
private final MemoryIndex memoryIndex
private final LeafReader leafReader
private final CharacterRunAutomaton preMemIndexFilterAutomaton
public MemoryIndexOffsetStrategy(java.lang.String field, java.util.function.Predicate<java.lang.String> fieldMatcher, BytesRef[] extractedTerms, PhraseHelper phraseHelper, CharacterRunAutomaton[] automata, Analyzer analyzer, java.util.function.Function<Query,java.util.Collection<Query>> multiTermQueryRewrite)
private static CharacterRunAutomaton buildCombinedAutomaton(java.util.function.Predicate<java.lang.String> fieldMatcher, BytesRef[] terms, CharacterRunAutomaton[] automata, PhraseHelper strictPhrases, java.util.function.Function<Query,java.util.Collection<Query>> multiTermQueryRewrite)
CharacterRunAutomaton
matching any term the query might match.public java.util.List<OffsetsEnum> getOffsetsEnums(IndexReader reader, int docId, java.lang.String content) throws java.io.IOException
FieldOffsetStrategy
getOffsetsEnums
in class FieldOffsetStrategy
java.io.IOException
private static FilteringTokenFilter newKeepWordFilter(TokenStream tokenStream, CharacterRunAutomaton charRunAutomaton)