public class PhraseQuery extends Query
"new york"
.
This query may be combined with other terms or queries with a BooleanQuery
.
NOTE: 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()
Deprecated.
Use the
PhraseQuery.Builder class to build phrase queries. |
PhraseQuery(int slop,
String 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,
String field,
String... 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(String field,
BytesRef... terms)
Create a phrase query which will match documents that contain the given
list of terms at consecutive positions in
field . |
PhraseQuery(String field,
String... 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 |
---|---|
void |
add(Term term)
Deprecated.
Phrase queries should be created once with
PhraseQuery.Builder
and then considered immutable. See PhraseQuery.Builder.add(Term) . |
void |
add(Term term,
int position)
Deprecated.
Phrase queries should be created once with
PhraseQuery.Builder
and then considered immutable. See PhraseQuery.Builder.add(Term, int) . |
Weight |
createWeight(IndexSearcher searcher,
boolean needsScores)
Expert: Constructs an appropriate Weight implementation for this query.
|
boolean |
equals(Object o)
Returns true iff
o is equal to this. |
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.
|
void |
setSlop(int s)
Deprecated.
Phrase queries should be created once with
PhraseQuery.Builder
and then considered immutable. See PhraseQuery.Builder.setSlop(int) . |
String |
toString(String f)
Prints a user-readable version of this query.
|
public PhraseQuery(int slop, String field, String... terms)
field
, and at a
maximum edit distance of slop
. For more complicated use-cases,
use PhraseQuery.Builder
.getSlop()
public PhraseQuery(String field, String... terms)
field
.public PhraseQuery(int slop, String field, BytesRef... terms)
field
, and at a
maximum edit distance of slop
. For more complicated use-cases,
use PhraseQuery.Builder
.getSlop()
public PhraseQuery(String field, BytesRef... terms)
field
.@Deprecated public PhraseQuery()
PhraseQuery.Builder
class to build phrase queries.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 Term[] getTerms()
public int[] getPositions()
public Query rewrite(IndexReader reader) throws IOException
Query
rewrite
in class Query
IOException
public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException
Query
Only implemented by primitive queries, which re-write to themselves.
createWeight
in class Query
needsScores
- True if document scores (Scorer.score()
) or match
frequencies (Scorer.freq()
) are needed.IOException
public boolean equals(Object o)
o
is equal to this.public int hashCode()
@Deprecated public void setSlop(int s)
PhraseQuery.Builder
and then considered immutable. See PhraseQuery.Builder.setSlop(int)
.getSlop()
@Deprecated public void add(Term term)
PhraseQuery.Builder
and then considered immutable. See PhraseQuery.Builder.add(Term)
.@Deprecated public void add(Term term, int position)
PhraseQuery.Builder
and then considered immutable. See PhraseQuery.Builder.add(Term, int)
.Copyright © 2000-2015 Apache Software Foundation. All Rights Reserved.