X-Git-Url: https://git.mdrn.pl/pylucene.git/blobdiff_plain/a2e61f0c04805cfcb8706176758d1283c7e3a55c..aaeed5504b982cf3545252ab528713250aa33eed:/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java?ds=inline diff --git a/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java b/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java deleted file mode 100644 index f6eeecb..0000000 --- a/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.apache.lucene.search.spans; - -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.io.IOException; -import java.util.Set; - -import org.apache.lucene.index.IndexReader; -import org.apache.lucene.index.Term; -import org.apache.lucene.search.Query; -import org.apache.lucene.search.Weight; -import org.apache.lucene.search.Searcher; -import org.apache.lucene.search.Similarity; -import org.apache.lucene.util.ToStringUtils; - -/** - *
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':
- * - *- * 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 - * {@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.
- */ -public class FieldMaskingSpanQuery extends SpanQuery { - private SpanQuery maskedQuery; - private String field; - - public FieldMaskingSpanQuery(SpanQuery maskedQuery, String maskedField) { - this.maskedQuery = maskedQuery; - this.field = maskedField; - } - - @Override - public String getField() { - return field; - } - - public SpanQuery getMaskedQuery() { - return maskedQuery; - } - - // :NOTE: getBoost and setBoost are not proxied to the maskedQuery - // ...this is done to be more consistent with things like SpanFirstQuery - - @Override - public Spans getSpans(IndexReader reader) throws IOException { - return maskedQuery.getSpans(reader); - } - - @Override - public void extractTerms(Set