public class SpanQuerySequence extends BLSpanQuery
Modifier and Type | Field and Description |
---|---|
protected String |
baseFieldName
The field name for this query.
|
protected List<BLSpanQuery> |
clauses |
protected static org.apache.logging.log4j.Logger |
logger |
protected String |
luceneFieldName |
MAX_UNLIMITED
Constructor and Description |
---|
SpanQuerySequence(BLSpanQuery[] clauses) |
SpanQuerySequence(BLSpanQuery first,
BLSpanQuery second) |
SpanQuerySequence(List<BLSpanQuery> clauscol) |
Modifier and Type | Method and Description |
---|---|
boolean |
canInternalizeNeighbour(BLSpanQuery clause,
boolean onTheRight)
Can this query "internalize" the given neighbouring clause?
Internalizing means adding the clause to its children, which is often more
efficient because we create longer sequences that match fewer hits and may
themselves be further optimized.
|
boolean |
canMakeNfa() |
String |
clausesToString(String field) |
BLSpanWeight |
createWeight(org.apache.lucene.search.IndexSearcher searcher,
boolean needsScores) |
boolean |
equals(Object o) |
int |
forwardMatchingCost()
Return an (very rough) indication of how expensive finding a match for this
query using an NFA would be.
|
String |
getField()
Returns the name of the search field.
|
Nfa |
getNfa(ForwardIndexAccessor fiAccessor,
int direction) |
String |
getRealField() |
int |
hashCode() |
boolean |
hitsAllSameLength()
Do our hits have constant length?
|
boolean |
hitsAreUnique()
Is it guaranteed that no two hits have the same start and end position?
|
boolean |
hitsEndPointSorted()
When hit B follows hit A, is it guaranteed that B.end >= A.end? Also, if
A.end == B.end, is B.start > A.start?
|
boolean |
hitsHaveUniqueEnd()
Is it guaranteed that no two hits have the same end position?
|
boolean |
hitsHaveUniqueStart()
Is it guaranteed that no two hits have the same start position?
|
int |
hitsLengthMax()
How long could our longest hit be?
|
int |
hitsLengthMin()
How long could our shortest hit be?
|
boolean |
hitsStartPointSorted()
When hit B follows hit A, is it guaranteed that B.start >= A.start? Also,
if A.start == B.start, is B.end > A.end?
|
SpanQuerySequence |
internalizeNeighbour(BLSpanQuery clause,
boolean addToRight)
Create a new sequence with a clause added to it.
|
boolean |
matchesEmptySequence()
Does this query match the empty sequence?
For example, the query [word="cow"]* matches the empty sequence.
|
protected boolean |
matchingTagsToPosFilter(List<BLSpanQuery> clauses)
Try to match separate start and end tags in this sequence, and convert into a
position filter (e.g.
|
BLSpanQuery |
noEmpty()
Return a version of this clause that cannot match the empty sequence.
|
BLSpanQuery |
optimize(org.apache.lucene.index.IndexReader reader)
Called before rewrite() to optimize certain parts of the query before they
are rewritten (e.g.
|
long |
reverseMatchingCost(org.apache.lucene.index.IndexReader reader)
Return an (very rough) indication of how many hits this clause might return.
|
BLSpanQuery |
rewrite(org.apache.lucene.index.IndexReader reader) |
protected List<BLSpanQuery> |
rewriteClauses(org.apache.lucene.index.IndexReader reader) |
static SpanQuerySequence |
sequenceInternalize(BLSpanQuery whereToInternalize,
BLSpanQuery clauseToInternalize,
boolean addToRight)
Either add a clause to an existing SpanQuerySequence, or create a new
SpanQuerySequence with the two specified clauses.
|
void |
setQueryInfo(QueryInfo queryInfo) |
String |
toString(String field) |
addMaxValues, ensureSorted, ensureSortedUnique, getNfaTwoWay, inf, inverted, isSingleTokenNot, log, producesSingleTokens, wrap
protected static final org.apache.logging.log4j.Logger logger
protected String baseFieldName
protected String luceneFieldName
protected List<BLSpanQuery> clauses
public SpanQuerySequence(BLSpanQuery first, BLSpanQuery second)
public SpanQuerySequence(List<BLSpanQuery> clauscol)
public SpanQuerySequence(BLSpanQuery[] clauses)
protected boolean matchingTagsToPosFilter(List<BLSpanQuery> clauses)
clauses
- clauses in which to find matching tagspublic BLSpanQuery optimize(org.apache.lucene.index.IndexReader reader) throws IOException
BLSpanQuery
optimize
in class BLSpanQuery
reader
- index readerIOException
- on errorpublic BLSpanQuery rewrite(org.apache.lucene.index.IndexReader reader) throws IOException
rewrite
in class BLSpanQuery
IOException
public boolean matchesEmptySequence()
BLSpanQuery
matchesEmptySequence
in class BLSpanQuery
public BLSpanQuery noEmpty()
BLSpanQuery
public BLSpanWeight createWeight(org.apache.lucene.search.IndexSearcher searcher, boolean needsScores) throws IOException
createWeight
in class BLSpanQuery
IOException
public String toString(String field)
toString
in class BLSpanQuery
public boolean hitsAllSameLength()
BLSpanQuery
hitsAllSameLength
in class BLSpanQuery
public int hitsLengthMin()
BLSpanQuery
hitsLengthMin
in class BLSpanQuery
public int hitsLengthMax()
BLSpanQuery
hitsLengthMax
in class BLSpanQuery
public boolean hitsEndPointSorted()
BLSpanQuery
hitsEndPointSorted
in class BLSpanQuery
public boolean hitsStartPointSorted()
BLSpanQuery
hitsStartPointSorted
in class BLSpanQuery
public boolean hitsHaveUniqueStart()
BLSpanQuery
hitsHaveUniqueStart
in class BLSpanQuery
public boolean hitsHaveUniqueEnd()
BLSpanQuery
hitsHaveUniqueEnd
in class BLSpanQuery
public boolean hitsAreUnique()
BLSpanQuery
hitsAreUnique
in class BLSpanQuery
public Nfa getNfa(ForwardIndexAccessor fiAccessor, int direction)
getNfa
in class BLSpanQuery
public boolean canMakeNfa()
canMakeNfa
in class BLSpanQuery
public long reverseMatchingCost(org.apache.lucene.index.IndexReader reader)
BLSpanQuery
reverseMatchingCost
in class BLSpanQuery
reader
- the index readerpublic int forwardMatchingCost()
BLSpanQuery
forwardMatchingCost
in class BLSpanQuery
public boolean canInternalizeNeighbour(BLSpanQuery clause, boolean onTheRight)
BLSpanQuery
canInternalizeNeighbour
in class BLSpanQuery
clause
- clause we want to internalizeonTheRight
- if true, clause is a right neighbour of this query; if
false, a left neighbourpublic SpanQuerySequence internalizeNeighbour(BLSpanQuery clause, boolean addToRight)
internalizeNeighbour
in class BLSpanQuery
clause
- clause to addaddToRight
- if true, add to the right; if false, to the leftpublic static SpanQuerySequence sequenceInternalize(BLSpanQuery whereToInternalize, BLSpanQuery clauseToInternalize, boolean addToRight)
whereToInternalize
- existing sequence, or existing non-sequence clauseclauseToInternalize
- clause to add to sequence or add to existing
clauseaddToRight
- if true, add new clause to the right of existing; if false,
to the leftpublic boolean equals(Object o)
equals
in class BLSpanQuery
public int hashCode()
hashCode
in class BLSpanQuery
public String getField()
getField
in class BLSpanQuery
public String getRealField()
getRealField
in class BLSpanQuery
protected List<BLSpanQuery> rewriteClauses(org.apache.lucene.index.IndexReader reader) throws IOException
IOException
public void setQueryInfo(QueryInfo queryInfo)
setQueryInfo
in class BLSpanQuery
Copyright © 2020 Instituut voor Nederlandse Taal (INT). All rights reserved.