Wrapper to allow {@link SpanQuery} objects participate in composite
single-field SpanQueries by 'lying' about their search field. That is,
the masked SpanQuery will function as normal,
but {@link SpanQuery#GetField()} simply hands back the value supplied
in this class's constructor.This can be used to support Queries like {@link SpanNearQuery} or
{@link 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':
Namespace: Lucene.Net.Search.Spansteacherid: 1 studentfirstname: james studentsurname: jones teacherid: 2 studenfirstname: james studentsurname: smith studentfirstname: sally studentsurname: jonesa SpanNearQuery with a slop of 0 can be applied across two {@link 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 {@link #GetField()} returns the masked field, scoring will be done using the norms of the field name supplied. This may lead to unexpected scoring behaviour.
Assembly: Lucene.Net (in Lucene.Net.dll) Version: 2.9.4.1
Syntax
C# |
---|
[SerializableAttribute] public class FieldMaskingSpanQuery : SpanQuery |
Visual Basic |
---|
<SerializableAttribute> _ Public Class FieldMaskingSpanQuery _ Inherits SpanQuery |
Visual C++ |
---|
[SerializableAttribute] public ref class FieldMaskingSpanQuery : public SpanQuery |
Inheritance Hierarchy
System..::..Object
Lucene.Net.Search..::..Query
Lucene.Net.Search.Spans..::..SpanQuery
Lucene.Net.Search.Spans..::..FieldMaskingSpanQuery
Lucene.Net.Search..::..Query
Lucene.Net.Search.Spans..::..SpanQuery
Lucene.Net.Search.Spans..::..FieldMaskingSpanQuery