public class PhraseQuery extends Query
"new york"
.
This query may be combined with other terms or queries with a BooleanQuery
.
NOTE:
All terms in the phrase must match, even those at the same position. If you
have terms at the same position, perhaps synonyms, you probably want MultiPhraseQuery
instead which only requires one term at a position to match.
Also, Leading holes don't have any particular meaning for this query
and will be ignored. For instance this query:
PhraseQuery.Builder builder = new PhraseQuery.Builder(); builder.add(new Term("body", "one"), 4); builder.add(new Term("body", "two"), 5); PhraseQuery pq = builder.build();is equivalent to the below query:
PhraseQuery.Builder builder = new PhraseQuery.Builder(); builder.add(new Term("body", "one"), 0); builder.add(new Term("body", "two"), 1); PhraseQuery pq = builder.build();
Modifier and Type | Class and Description |
---|---|
static class |
PhraseQuery.Builder
A builder for phrase queries.
|
Constructor and Description |
---|
PhraseQuery(int slop,
field,
BytesRef... terms)
Create a phrase query which will match documents that contain the given
list of terms at consecutive positions in
field , and at a
maximum edit distance of slop . |
PhraseQuery(int slop,
field,
... terms)
Create a phrase query which will match documents that contain the given
list of terms at consecutive positions in
field , and at a
maximum edit distance of slop . |
field,
BytesRef... terms)
Create a phrase query which will match documents that contain the given
list of terms at consecutive positions in
field . |
field,
... terms)
Create a phrase query which will match documents that contain the given
list of terms at consecutive positions in
field . |
Modifier and Type | Method and Description |
---|---|
Weight |
createWeight(IndexSearcher searcher,
ScoreMode scoreMode,
float boost)
Expert: Constructs an appropriate Weight implementation for this query.
|
boolean |
other)
Returns true iff
o is equal to this. |
|
getField()
Returns the field this query applies to
|
int[] |
getPositions()
Returns the relative positions of terms in this phrase.
|
int |
getSlop()
Return the slop for this
PhraseQuery . |
Term[] |
getTerms()
Returns the list of terms in this phrase.
|
int |
hashCode()
Returns a hash code value for this object.
|
Query |
rewrite(IndexReader reader)
Expert: called to re-write queries into primitive queries.
|
|
f)
Prints a user-readable version of this query.
|
void |
visit(QueryVisitor visitor)
Recurse through the query tree, visiting any child queries
|
classHash, sameClassAs, toString
public PhraseQuery(int slop, field, ... terms)
field
, and at a
maximum edit distance of slop
. For more complicated use-cases,
use PhraseQuery.Builder
.getSlop()
public PhraseQuery( field, ... terms)
field
.public PhraseQuery(int slop, field, BytesRef... terms)
field
, and at a
maximum edit distance of slop
. For more complicated use-cases,
use PhraseQuery.Builder
.getSlop()
public PhraseQuery( field, BytesRef... terms)
field
.public int getSlop()
PhraseQuery
.
The slop is an edit distance between respective positions of terms as
defined in this PhraseQuery
and the positions of terms in a
document.
For instance, when searching for "quick fox"
, it is expected that
the difference between the positions of fox
and quick
is 1.
So "a quick brown fox"
would be at an edit distance of 1 since the
difference of the positions of fox
and quick
is 2.
Similarly, "the fox is quick"
would be at an edit distance of 3
since the difference of the positions of fox
and quick
is -2.
The slop defines the maximum edit distance for a document to match.
More exact matches are scored higher than sloppier matches, thus search results are sorted by exactness.
public getField()
public Term[] getTerms()
public int[] getPositions()
public Query rewrite(IndexReader reader) throws
Query
public void visit(QueryVisitor visitor)
Query
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws
Query
Only implemented by primitive queries, which re-write to themselves.
createWeight
in class Query
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.
public toString( f)
public boolean equals( other)
o
is equal to this.equals
in class Query
Query.sameClassAs(Object)
,
Query.classHash()
public int hashCode()
hashCode
in class Query
Query.equals(Object)
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.