Class FieldMaskingSpanQuery
Wrapper to allow SpanQuery objects participate in composite
single-field SpanQueries by 'lying' about their search field. That is,
the masked SpanQuery will function as normal,
but Field simply hands back the value supplied
in this class's constructor.
This can be used to support Queries like SpanNearQuery or
SpanOrQuery across different fields, which is not ordinarily
permitted.
This can be useful for denormalized relational data: for example, when
indexing a document with conceptually many 'children':
teacherid: 1
studentfirstname: james
studentsurname: jones
teacherid: 2
studenfirstname: james
studentsurname: smith
studentfirstname: sally
studentsurname: jones
A SpanNearQuery with a slop of 0 can be applied across two
SpanTermQuery objects as follows:
SpanQuery q1 = new SpanTermQuery(new Term("studentfirstname", "james"));
SpanQuery q2 = new SpanTermQuery(new Term("studentsurname", "jones"));
SpanQuery q2m = new FieldMaskingSpanQuery(q2, "studentfirstname");
Query q = new SpanNearQuery(new SpanQuery[] { q1, q2m }, -1, false);
to search for 'studentfirstname:james studentsurname:jones' and find
teacherid 1 without matching teacherid 2 (which has a 'james' in position 0
and 'jones' in position 1).
Note: as Field returns the masked field, scoring will be
done using the Similarity and collection statistics of the field name supplied,
but with the term statistics of the real field. This may lead to exceptions,
poor performance, and unexpected scoring behavior.
Inheritance
System.Object
FieldMaskingSpanQuery
Inherited Members
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Assembly: Lucene.Net.dll
Syntax
public class FieldMaskingSpanQuery : SpanQuery
Constructors
|
Improve this Doc
View Source
FieldMaskingSpanQuery(SpanQuery, String)
Declaration
public FieldMaskingSpanQuery(SpanQuery maskedQuery, string maskedField)
Parameters
Type |
Name |
Description |
SpanQuery |
maskedQuery |
|
System.String |
maskedField |
|
Properties
|
Improve this Doc
View Source
Field
Declaration
public override string Field { get; }
Property Value
Type |
Description |
System.String |
|
Overrides
|
Improve this Doc
View Source
MaskedQuery
Declaration
public virtual SpanQuery MaskedQuery { get; }
Property Value
Methods
|
Improve this Doc
View Source
CreateWeight(IndexSearcher)
Declaration
public override Weight CreateWeight(IndexSearcher searcher)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
Equals(Object)
Declaration
public override bool Equals(object o)
Parameters
Type |
Name |
Description |
System.Object |
o |
|
Returns
Type |
Description |
System.Boolean |
|
Overrides
|
Improve this Doc
View Source
Declaration
public override void ExtractTerms(ISet<Term> terms)
Parameters
Type |
Name |
Description |
System.Collections.Generic.ISet<Term> |
terms |
|
Overrides
|
Improve this Doc
View Source
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Type |
Description |
System.Int32 |
|
Overrides
|
Improve this Doc
View Source
GetSpans(AtomicReaderContext, IBits, IDictionary<Term, TermContext>)
Declaration
public override Spans GetSpans(AtomicReaderContext context, IBits acceptDocs, IDictionary<Term, TermContext> termContexts)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
Rewrite(IndexReader)
Declaration
public override Query Rewrite(IndexReader reader)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
ToString(String)
Declaration
public override string ToString(string field)
Parameters
Type |
Name |
Description |
System.String |
field |
|
Returns
Type |
Description |
System.String |
|
Overrides