You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2017/12/27 15:04:21 UTC
[28/54] [abbrv] lucene-solr:jira/solr-11702: Revert "WIP"
Revert "WIP"
This reverts commit 48c8947c1775c7695fdd689049fc0ef0e487ebc7.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/53a7f5b7
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/53a7f5b7
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/53a7f5b7
Branch: refs/heads/jira/solr-11702
Commit: 53a7f5b74841a642c5410b594122126433b1c059
Parents: dfaf023
Author: Alan Woodward <ro...@apache.org>
Authored: Mon Dec 18 18:41:37 2017 +0000
Committer: Alan Woodward <ro...@apache.org>
Committed: Mon Dec 18 18:41:37 2017 +0000
----------------------------------------------------------------------
.../java/org/apache/lucene/search/Query.java | 4 ++-
.../apache/lucene/search/RewriteContext.java | 32 --------------------
.../org/apache/lucene/search/TermQuery.java | 29 +++++++++++-------
3 files changed, 21 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/53a7f5b7/lucene/core/src/java/org/apache/lucene/search/Query.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/Query.java b/lucene/core/src/java/org/apache/lucene/search/Query.java
index 7a3fc0d..54de63f 100644
--- a/lucene/core/src/java/org/apache/lucene/search/Query.java
+++ b/lucene/core/src/java/org/apache/lucene/search/Query.java
@@ -70,7 +70,9 @@ public abstract class Query {
* a PrefixQuery will be rewritten into a BooleanQuery that consists
* of TermQuerys.
*/
- public abstract Query rewrite(IndexReader reader, RewriteContext rewriteContext) throws IOException;
+ public Query rewrite(IndexReader reader) throws IOException {
+ return this;
+ }
/**
* Override and implement query instance equivalence properly in a subclass.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/53a7f5b7/lucene/core/src/java/org/apache/lucene/search/RewriteContext.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/RewriteContext.java b/lucene/core/src/java/org/apache/lucene/search/RewriteContext.java
deleted file mode 100644
index 8738399..0000000
--- a/lucene/core/src/java/org/apache/lucene/search/RewriteContext.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.lucene.search;
-
-import java.io.IOException;
-
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermContext;
-
-public class RewriteContext {
-
- public TermContext buildTermContext(Term term, IndexReader reader) throws IOException {
- return TermContext.build(reader.getContext(), term);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/53a7f5b7/lucene/core/src/java/org/apache/lucene/search/TermQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/TermQuery.java b/lucene/core/src/java/org/apache/lucene/search/TermQuery.java
index b13a9f4..925fe93 100644
--- a/lucene/core/src/java/org/apache/lucene/search/TermQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/TermQuery.java
@@ -22,7 +22,6 @@ import java.util.Objects;
import java.util.Set;
import org.apache.lucene.index.IndexOptions;
-import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReaderContext;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.LeafReaderContext;
@@ -204,17 +203,25 @@ public class TermQuery extends Query {
@Override
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException {
- if (perReaderTermState == null)
- throw new IllegalStateException("TermQuery must be rewritten before use");
- if (perReaderTermState.wasBuiltFor(searcher.getTopReaderContext()) == false)
- throw new IllegalStateException("TermQuery was built against a different IndexReader");
- return new TermWeight(searcher, scoreMode.needsScores(), boost, perReaderTermState);
- }
+ final IndexReaderContext context = searcher.getTopReaderContext();
+ final TermContext termState;
+ if (perReaderTermState == null
+ || perReaderTermState.wasBuiltFor(context) == false) {
+ if (scoreMode.needsScores()) {
+ // make TermQuery single-pass if we don't have a PRTS or if the context
+ // differs!
+ termState = TermContext.build(context, term);
+ } else {
+ // do not compute the term state, this will help save seeks in the terms
+ // dict on segments that have a cache entry for this query
+ termState = null;
+ }
+ } else {
+ // PRTS was pre-build for this IS
+ termState = this.perReaderTermState;
+ }
- @Override
- public Query rewrite(IndexReader reader, RewriteContext rewriteContext) throws IOException {
- TermContext tc = rewriteContext.buildTermContext(term, reader);
- return new TermQuery(term, tc);
+ return new TermWeight(searcher, scoreMode.needsScores(), boost, termState);
}
/** Prints a user-readable version of this query. */