blob: d44744e60d542021f3715bd70726aedb3a8b1dba [file] [log] [blame]
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/AbstractQueryConfig.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/AbstractQueryConfig.java (revision 0)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/AbstractQueryConfig.java (revision 0)
@@ -0,0 +1,118 @@
+package org.apache.lucene.queryParser.core.config;
+
+/**
+ * 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.util.HashMap;
+
+/**
+ * <p>
+ * This class is the base of {@link QueryConfigHandler} and {@link FieldConfig}.
+ * It has operations to set, unset and get configuration values.
+ * </p>
+ * <p>
+ * Each configuration is is a key->value pair. The key should be an unique
+ * {@link ConfigurationKey} instance and it also holds the value's type.
+ * </p>
+ *
+ * @see ConfigurationKey
+ */
+public abstract class AbstractQueryConfig {
+
+ final private HashMap<ConfigurationKey<?>, Object> configMap = new HashMap<ConfigurationKey<?>, Object>();
+
+ AbstractQueryConfig() {
+ // although this class is public, it can only be constructed from package
+ }
+
+ /**
+ * Returns the value held by the given key.
+ *
+ * @param <T> the value's type
+ *
+ * @param key the key, cannot be <code>null</code>
+ *
+ * @return the value held by the given key
+ */
+ @SuppressWarnings("unchecked")
+ public <T> T get(ConfigurationKey<T> key) {
+
+ if (key == null) {
+ throw new IllegalArgumentException("key cannot be null!");
+ }
+
+ return (T) this.configMap.get(key);
+
+ }
+
+ /**
+ * Returns true if there is a value set with the given key, otherwise false.
+ *
+ * @param <T> @param <T> the value's type
+ * @param key the key, cannot be <code>null</code>
+ * @return true if there is a value set with the given key, otherwise false
+ */
+ public <T> boolean has(ConfigurationKey<T> key) {
+
+ if (key == null) {
+ throw new IllegalArgumentException("key cannot be null!");
+ }
+
+ return this.configMap.containsKey(key);
+
+ }
+
+ /**
+ * Sets a key and its value.
+ *
+ * @param <T> the value's type
+ * @param key the key, cannot be <code>null</code>
+ * @param value
+ */
+ public <T> void set(ConfigurationKey<T> key, T value) {
+
+ if (key == null) {
+ throw new IllegalArgumentException("key cannot be null!");
+ }
+
+ if (value == null) {
+ unset(key);
+
+ } else {
+ this.configMap.put(key, value);
+ }
+
+ }
+
+ /**
+ * Unsets the given key and its value.
+ *
+ * @param <T> the value's type
+ * @param key the key
+ * @return true if the key and value was set and removed, otherwise false
+ */
+ public <T> boolean unset(ConfigurationKey<T> key) {
+
+ if (key == null) {
+ throw new IllegalArgumentException("key cannot be null!");
+ }
+
+ return this.configMap.remove(key) != null;
+
+ }
+
+}
Property changes on: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/AbstractQueryConfig.java
___________________________________________________________________
Added: svn:keywords
+ Rev Date
Added: svn:eol-style
+ native
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/ConfigurationKey.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/ConfigurationKey.java (revision 0)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/ConfigurationKey.java (revision 0)
@@ -0,0 +1,42 @@
+package org.apache.lucene.queryParser.core.config;
+
+/**
+ * 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.
+ */
+
+/**
+ * An instance of this class represents a key that is used to retrieve a value
+ * from {@link AbstractQueryConfig}. It also holds the value's type, which is
+ * defined in the generic argument.
+ *
+ * @see AbstractQueryConfig
+ */
+final public class ConfigurationKey<T> {
+
+ private ConfigurationKey() {}
+
+ /**
+ * Creates a new instance.
+ *
+ * @param <T> the value's type
+ *
+ * @return a new instance
+ */
+ public static <T> ConfigurationKey<T> newInstance() {
+ return new ConfigurationKey<T>();
+ }
+
+}
Property changes on: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/ConfigurationKey.java
___________________________________________________________________
Added: svn:keywords
+ Rev Date
Added: svn:eol-style
+ native
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/FieldConfig.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/FieldConfig.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/FieldConfig.java (working copy)
@@ -17,16 +17,10 @@
* limitations under the License.
*/
-import org.apache.lucene.util.AttributeSource;
-
/**
- * This class represents a field configuration. Every configuration should be
- * set using the methods inherited from {@link AttributeSource}.
- *
- * @see QueryConfigHandler
- * @see org.apache.lucene.util.Attribute
+ * This class represents a field configuration.
*/
-public class FieldConfig extends AttributeSource {
+public class FieldConfig extends AbstractQueryConfig {
private String fieldName;
@@ -57,7 +51,7 @@
@Override
public String toString() {
- return "<fieldconfig name=\"" + this.fieldName + "\" attributes=\""
+ return "<fieldconfig name=\"" + this.fieldName + "\" configurations=\""
+ super.toString() + "\"/>";
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/FieldConfigListener.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/FieldConfigListener.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/FieldConfigListener.java (working copy)
@@ -20,7 +20,7 @@
/**
* This interface should be implemented by classes that wants to listen for
* field configuration requests. The implementation receives a
- * {@link FieldConfig} object and may add/change its attributes.
+ * {@link FieldConfig} object and may add/change its configuration.
*
* @see FieldConfig
* @see QueryConfigHandler
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/QueryConfigHandler.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/QueryConfigHandler.java (revision 1096393)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/QueryConfigHandler.java (working copy)
@@ -1,85 +0,0 @@
-package org.apache.lucene.queryParser.core.config;
-
-/**
- * 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.util.LinkedList;
-
-import org.apache.lucene.queryParser.core.processors.QueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-import org.apache.lucene.util.AttributeSource;
-
-/**
- * This class can be used to hold any query configuration and no field
- * configuration. For field configuration, it creates a empty
- * {@link FieldConfig} object and delegate it to field config listeners,
- * these are responsible for setting up all the field configuration.
- *
- * {@link QueryConfigHandler} should be extended by classes that intends to
- * provide configuration to {@link QueryNodeProcessor} objects.
- *
- * This class extends {@link AttributeSource}, so {@link Attribute}s can be
- * attached to it.
- *
- * The class that extends {@link QueryConfigHandler} should also provide
- * {@link FieldConfig} objects for each collection field.
- *
- * @see Attribute
- * @see FieldConfig
- * @see FieldConfigListener
- * @see QueryConfigHandler
- */
-public abstract class QueryConfigHandler extends AttributeSource {
-
- private LinkedList<FieldConfigListener> listeners = new LinkedList<FieldConfigListener>();
-
- /**
- * Returns an implementation of
- * {@link FieldConfig} for a specific field name. If the implemented
- * {@link QueryConfigHandler} does not know a specific field name, it may
- * return <code>null</code>, indicating there is no configuration for that
- * field.
- *
- * @param fieldName
- * the field name
- * @return a {@link FieldConfig} object containing the field name
- * configuration or <code>null</code>, if the implemented
- * {@link QueryConfigHandler} has no configuration for that field
- */
- public FieldConfig getFieldConfig(CharSequence fieldName) {
- FieldConfig fieldConfig = new FieldConfig(fieldName);
-
- for (FieldConfigListener listener : this.listeners) {
- listener.buildFieldConfig(fieldConfig);
- }
-
- return fieldConfig;
-
- }
-
- /**
- * Adds a listener. The added listeners are called in the order they are
- * added.
- *
- * @param listener
- * the listener to be added
- */
- public void addFieldConfigListener(FieldConfigListener listener) {
- this.listeners.add(listener);
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/QueryConfigHandler.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/QueryConfigHandler.java (revision 0)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/QueryConfigHandler.java (revision 1096393)
@@ -0,0 +1,80 @@
+package org.apache.lucene.queryParser.core.config;
+
+/**
+ * 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.util.LinkedList;
+
+import org.apache.lucene.queryParser.core.processors.QueryNodeProcessor;
+import org.apache.lucene.queryParser.core.util.StringUtils;
+
+/**
+ * This class can be used to hold any query configuration and no field
+ * configuration. For field configuration, it creates an empty
+ * {@link FieldConfig} object and delegate it to field config listeners,
+ * these are responsible for setting up all the field configuration.
+ *
+ * {@link QueryConfigHandler} should be extended by classes that intends to
+ * provide configuration to {@link QueryNodeProcessor} objects.
+ *
+ * The class that extends {@link QueryConfigHandler} should also provide
+ * {@link FieldConfig} objects for each collection field.
+ *
+ * @see FieldConfig
+ * @see FieldConfigListener
+ * @see QueryConfigHandler
+ */
+public abstract class QueryConfigHandler extends AbstractQueryConfig {
+
+ final private LinkedList<FieldConfigListener> listeners = new LinkedList<FieldConfigListener>();
+
+ /**
+ * Returns an implementation of
+ * {@link FieldConfig} for a specific field name. If the implemented
+ * {@link QueryConfigHandler} does not know a specific field name, it may
+ * return <code>null</code>, indicating there is no configuration for that
+ * field.
+ *
+ * @param fieldName
+ * the field name
+ * @return a {@link FieldConfig} object containing the field name
+ * configuration or <code>null</code>, if the implemented
+ * {@link QueryConfigHandler} has no configuration for that field
+ */
+ public FieldConfig getFieldConfig(String fieldName) {
+ FieldConfig fieldConfig = new FieldConfig(StringUtils.toString(fieldName));
+
+ for (FieldConfigListener listener : this.listeners) {
+ listener.buildFieldConfig(fieldConfig);
+ }
+
+ return fieldConfig;
+
+ }
+
+ /**
+ * Adds a listener. The added listeners are called in the order they are
+ * added.
+ *
+ * @param listener
+ * the listener to be added
+ */
+ public void addFieldConfigListener(FieldConfigListener listener) {
+ this.listeners.add(listener);
+ }
+
+}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/package.html
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/package.html (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/core/config/package.html (working copy)
@@ -33,14 +33,7 @@
implementation.
</p>
<p>
-{@link org.apache.lucene.queryParser.core.config.FieldConfig} and {@link org.apache.lucene.queryParser.core.config.QueryConfigHandler}
- should use {@link org.apache.lucene.util.Attribute} to store all attributes
-required by the config implementation. See <tt>org.apache.lucene.queryParser.standard.config.*Attribute</tt>
-for reference implementation.
-</p>
-<p>
-The {@link org.apache.lucene.queryParser.core.config.QueryConfigHandler}, {@link org.apache.lucene.queryParser.core.config.FieldConfig},
- and {@link org.apache.lucene.util.Attribute}s are used in the processors to access config
+The {@link org.apache.lucene.queryParser.core.config.QueryConfigHandler} and {@link org.apache.lucene.queryParser.core.config.FieldConfig} are used in the processors to access config
information in a flexible and independent way.
See {@link org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor} for a
reference implementation.
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/precedence/processors/BooleanModifiersQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/precedence/processors/BooleanModifiersQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/precedence/processors/BooleanModifiersQueryNodeProcessor.java (working copy)
@@ -29,8 +29,9 @@
import org.apache.lucene.queryParser.core.nodes.ModifierQueryNode.Modifier;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
import org.apache.lucene.queryParser.precedence.PrecedenceQueryParser;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.Operator;
/**
* <p>
@@ -44,7 +45,7 @@
* if it is, the same operation when an {@link AndQueryNode} is found is applied to it.
* </p>
*
- * @see DefaultOperatorAttribute
+ * @see ConfigurationKeys#DEFAULT_OPERATOR
* @see PrecedenceQueryParser#setDefaultOperator
*/
public class BooleanModifiersQueryNodeProcessor extends QueryNodeProcessorImpl {
@@ -59,14 +60,14 @@
@Override
public QueryNode process(QueryNode queryTree) throws QueryNodeException {
-
- if (!getQueryConfigHandler().hasAttribute(DefaultOperatorAttribute.class)) {
+ Operator op = getQueryConfigHandler().get(ConfigurationKeys.DEFAULT_OPERATOR);
+
+ if (op == null) {
throw new IllegalArgumentException(
- "DefaultOperatorAttribute should be set on the QueryConfigHandler");
+ "StandardQueryConfigHandler.ConfigurationKeys.DEFAULT_OPERATOR should be set on the QueryConfigHandler");
}
- this.usingAnd = Operator.AND == getQueryConfigHandler().getAttribute(
- DefaultOperatorAttribute.class).getOperator();
+ this.usingAnd = StandardQueryConfigHandler.Operator.AND == op;
return super.process(queryTree);
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/StandardQueryParser.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/StandardQueryParser.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/StandardQueryParser.java (working copy)
@@ -23,25 +23,15 @@
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.DateTools;
+import org.apache.lucene.document.DateTools.Resolution;
import org.apache.lucene.queryParser.core.QueryNodeException;
import org.apache.lucene.queryParser.core.QueryParserHelper;
import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
import org.apache.lucene.queryParser.standard.builders.StandardQueryTreeBuilder;
-import org.apache.lucene.queryParser.standard.config.AllowLeadingWildcardAttribute;
-import org.apache.lucene.queryParser.standard.config.AnalyzerAttribute;
-import org.apache.lucene.queryParser.standard.config.DateResolutionAttribute;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute;
-import org.apache.lucene.queryParser.standard.config.DefaultPhraseSlopAttribute;
-import org.apache.lucene.queryParser.standard.config.FieldBoostMapAttribute;
-import org.apache.lucene.queryParser.standard.config.FieldDateResolutionMapAttribute;
-import org.apache.lucene.queryParser.standard.config.FuzzyAttribute;
-import org.apache.lucene.queryParser.standard.config.LocaleAttribute;
-import org.apache.lucene.queryParser.standard.config.LowercaseExpandedTermsAttribute;
-import org.apache.lucene.queryParser.standard.config.MultiFieldAttribute;
-import org.apache.lucene.queryParser.standard.config.MultiTermRewriteMethodAttribute;
-import org.apache.lucene.queryParser.standard.config.PositionIncrementsAttribute;
+import org.apache.lucene.queryParser.standard.config.FuzzyConfig;
import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.Operator;
import org.apache.lucene.queryParser.standard.parser.StandardSyntaxParser;
import org.apache.lucene.queryParser.standard.processors.StandardQueryNodeProcessorPipeline;
import org.apache.lucene.search.FuzzyQuery;
@@ -179,9 +169,8 @@
* Gets implicit operator setting, which will be either {@link Operator#AND}
* or {@link Operator#OR}.
*/
- public Operator getDefaultOperator() {
- DefaultOperatorAttribute attr = getQueryConfigHandler().getAttribute(DefaultOperatorAttribute.class);
- return attr.getOperator();
+ public StandardQueryConfigHandler.Operator getDefaultOperator() {
+ return getQueryConfigHandler().get(ConfigurationKeys.DEFAULT_OPERATOR);
}
/**
@@ -192,9 +181,8 @@
* In {@link Operator#AND} mode terms are considered to be in conjunction: the
* above mentioned query is parsed as <code>capital AND of AND Hungary</code>
*/
- public void setDefaultOperator(Operator operator) {
- DefaultOperatorAttribute attr = getQueryConfigHandler().getAttribute(DefaultOperatorAttribute.class);
- attr.setOperator(operator);
+ public void setDefaultOperator(StandardQueryConfigHandler.Operator operator) {
+ getQueryConfigHandler().set(ConfigurationKeys.DEFAULT_OPERATOR, operator);
}
/**
@@ -207,16 +195,22 @@
* Default: false.
*/
public void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms) {
- LowercaseExpandedTermsAttribute attr = getQueryConfigHandler().getAttribute(LowercaseExpandedTermsAttribute.class);
- attr.setLowercaseExpandedTerms(lowercaseExpandedTerms);
+ getQueryConfigHandler().set(ConfigurationKeys.LOWERCASE_EXPANDED_TERMS, lowercaseExpandedTerms);
}
/**
* @see #setLowercaseExpandedTerms(boolean)
*/
public boolean getLowercaseExpandedTerms() {
- LowercaseExpandedTermsAttribute attr = getQueryConfigHandler().getAttribute(LowercaseExpandedTermsAttribute.class);
- return attr.isLowercaseExpandedTerms();
+ Boolean lowercaseExpandedTerms = getQueryConfigHandler().get(ConfigurationKeys.LOWERCASE_EXPANDED_TERMS);
+
+ if (lowercaseExpandedTerms == null) {
+ return true;
+
+ } else {
+ return lowercaseExpandedTerms;
+ }
+
}
/**
@@ -229,8 +223,7 @@
* Default: false.
*/
public void setAllowLeadingWildcard(boolean allowLeadingWildcard) {
- AllowLeadingWildcardAttribute attr = getQueryConfigHandler().getAttribute(AllowLeadingWildcardAttribute.class);
- attr.setAllowLeadingWildcard(allowLeadingWildcard);
+ getQueryConfigHandler().set(ConfigurationKeys.ALLOW_LEADING_WILDCARD, allowLeadingWildcard);
}
/**
@@ -243,16 +236,22 @@
* Default: false.
*/
public void setEnablePositionIncrements(boolean enabled) {
- PositionIncrementsAttribute attr = getQueryConfigHandler().getAttribute(PositionIncrementsAttribute.class);
- attr.setPositionIncrementsEnabled(enabled);
+ getQueryConfigHandler().set(ConfigurationKeys.ENABLE_POSITION_INCREMENTS, enabled);
}
/**
* @see #setEnablePositionIncrements(boolean)
*/
public boolean getEnablePositionIncrements() {
- PositionIncrementsAttribute attr = getQueryConfigHandler().getAttribute(PositionIncrementsAttribute.class);
- return attr.isPositionIncrementsEnabled();
+ Boolean enablePositionsIncrements = getQueryConfigHandler().get(ConfigurationKeys.ENABLE_POSITION_INCREMENTS);
+
+ if (enablePositionsIncrements == null) {
+ return false;
+
+ } else {
+ return enablePositionsIncrements;
+ }
+
}
/**
@@ -266,95 +265,127 @@
* not relevant then use this change the rewrite method.
*/
public void setMultiTermRewriteMethod(MultiTermQuery.RewriteMethod method) {
- MultiTermRewriteMethodAttribute attr = getQueryConfigHandler().getAttribute(MultiTermRewriteMethodAttribute.class);
- attr.setMultiTermRewriteMethod(method);
+ getQueryConfigHandler().set(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD, method);
}
/**
* @see #setMultiTermRewriteMethod(org.apache.lucene.search.MultiTermQuery.RewriteMethod)
*/
public MultiTermQuery.RewriteMethod getMultiTermRewriteMethod() {
- MultiTermRewriteMethodAttribute attr = getQueryConfigHandler().getAttribute(MultiTermRewriteMethodAttribute.class);
- return attr.getMultiTermRewriteMethod();
+ return getQueryConfigHandler().get(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD);
}
+ /**
+ * Set the fields a query should be expanded to when the field is
+ * <code>null</code>
+ *
+ * @param fields the fields used to expand the query
+ */
public void setMultiFields(CharSequence[] fields) {
if (fields == null) {
fields = new CharSequence[0];
}
- MultiFieldAttribute attr = getQueryConfigHandler().addAttribute(MultiFieldAttribute.class);
- attr.setFields(fields);
+ getQueryConfigHandler().set(ConfigurationKeys.MULTI_FIELDS, fields);
}
/**
+ * Returns the fields used to expand the query when the field for a
+ * certain query is <code>null</code>
+ *
+ * @param fields the fields used to expand the query
+ */
+ public void getMultiFields(CharSequence[] fields) {
+ getQueryConfigHandler().get(ConfigurationKeys.MULTI_FIELDS);
+ }
+
+ /**
* Set the prefix length for fuzzy queries. Default is 0.
*
* @param fuzzyPrefixLength
* The fuzzyPrefixLength to set.
*/
public void setFuzzyPrefixLength(int fuzzyPrefixLength) {
- FuzzyAttribute attr = getQueryConfigHandler().addAttribute(FuzzyAttribute.class);
- attr.setPrefixLength(fuzzyPrefixLength);
+ QueryConfigHandler config = getQueryConfigHandler();
+ FuzzyConfig fuzzyConfig = config.get(ConfigurationKeys.FUZZY_CONFIG);
+
+ if (fuzzyConfig == null) {
+ fuzzyConfig = new FuzzyConfig();
+ config.set(ConfigurationKeys.FUZZY_CONFIG, fuzzyConfig);
+ }
+
+ fuzzyConfig.setPrefixLength(fuzzyPrefixLength);
+
}
/**
* Set locale used by date range parsing.
*/
public void setLocale(Locale locale) {
- LocaleAttribute attr = getQueryConfigHandler().addAttribute(LocaleAttribute.class);
- attr.setLocale(locale);
+ getQueryConfigHandler().set(ConfigurationKeys.LOCALE, locale);
}
/**
* Returns current locale, allowing access by subclasses.
*/
public Locale getLocale() {
- LocaleAttribute attr = getQueryConfigHandler().addAttribute(LocaleAttribute.class);
- return attr.getLocale();
+ return getQueryConfigHandler().get(ConfigurationKeys.LOCALE);
}
/**
* Sets the default slop for phrases. If zero, then exact phrase matches are
* required. Default value is zero.
+ *
+ * @deprecated renamed to {@link #setPhraseSlop(int)}
*/
+ @Deprecated
public void setDefaultPhraseSlop(int defaultPhraseSlop) {
- DefaultPhraseSlopAttribute attr = getQueryConfigHandler().addAttribute(DefaultPhraseSlopAttribute.class);
- attr.setDefaultPhraseSlop(defaultPhraseSlop);
+ getQueryConfigHandler().set(ConfigurationKeys.PHRASE_SLOP, defaultPhraseSlop);
}
+
+ /**
+ * Sets the default slop for phrases. If zero, then exact phrase matches are
+ * required. Default value is zero.
+ */
+ public void setPhraseSlop(int defaultPhraseSlop) {
+ getQueryConfigHandler().set(ConfigurationKeys.PHRASE_SLOP, defaultPhraseSlop);
+ }
public void setAnalyzer(Analyzer analyzer) {
- AnalyzerAttribute attr = getQueryConfigHandler().getAttribute(AnalyzerAttribute.class);
- attr.setAnalyzer(analyzer);
+ getQueryConfigHandler().set(ConfigurationKeys.ANALYZER, analyzer);
}
public Analyzer getAnalyzer() {
- QueryConfigHandler config = this.getQueryConfigHandler();
-
- if ( config.hasAttribute(AnalyzerAttribute.class)) {
- AnalyzerAttribute attr = config.getAttribute(AnalyzerAttribute.class);
- return attr.getAnalyzer();
- }
-
- return null;
+ return getQueryConfigHandler().get(ConfigurationKeys.ANALYZER);
}
/**
* @see #setAllowLeadingWildcard(boolean)
*/
public boolean getAllowLeadingWildcard() {
- AllowLeadingWildcardAttribute attr = getQueryConfigHandler().addAttribute(AllowLeadingWildcardAttribute.class);
- return attr.isAllowLeadingWildcard();
+ Boolean allowLeadingWildcard = getQueryConfigHandler().get(ConfigurationKeys.ALLOW_LEADING_WILDCARD);
+
+ if (allowLeadingWildcard == null) {
+ return false;
+
+ } else {
+ return allowLeadingWildcard;
+ }
}
/**
* Get the minimal similarity for fuzzy queries.
*/
public float getFuzzyMinSim() {
- FuzzyAttribute attr = getQueryConfigHandler().addAttribute(FuzzyAttribute.class);
- return attr.getFuzzyMinSimilarity();
+ FuzzyConfig fuzzyConfig = getQueryConfigHandler().get(ConfigurationKeys.FUZZY_CONFIG);
+
+ if (fuzzyConfig == null) {
+ return FuzzyQuery.defaultMinSimilarity;
+ } else {
+ return fuzzyConfig.getMinSimilarity();
+ }
}
/**
@@ -363,16 +394,27 @@
* @return Returns the fuzzyPrefixLength.
*/
public int getFuzzyPrefixLength() {
- FuzzyAttribute attr = getQueryConfigHandler().addAttribute(FuzzyAttribute.class);
- return attr.getPrefixLength();
+ FuzzyConfig fuzzyConfig = getQueryConfigHandler().get(ConfigurationKeys.FUZZY_CONFIG);
+
+ if (fuzzyConfig == null) {
+ return FuzzyQuery.defaultPrefixLength;
+ } else {
+ return fuzzyConfig.getPrefixLength();
+ }
}
/**
* Gets the default slop for phrases.
*/
public int getPhraseSlop() {
- DefaultPhraseSlopAttribute attr = getQueryConfigHandler().addAttribute(DefaultPhraseSlopAttribute.class);
- return attr.getDefaultPhraseSlop();
+ Integer phraseSlop = getQueryConfigHandler().get(ConfigurationKeys.PHRASE_SLOP);
+
+ if (phraseSlop == null) {
+ return 0;
+
+ } else {
+ return phraseSlop;
+ }
}
/**
@@ -380,23 +422,83 @@
* {@link FuzzyQuery#defaultMinSimilarity}.
*/
public void setFuzzyMinSim(float fuzzyMinSim) {
- FuzzyAttribute attr = getQueryConfigHandler().addAttribute(FuzzyAttribute.class);
- attr.setFuzzyMinSimilarity(fuzzyMinSim);
+ QueryConfigHandler config = getQueryConfigHandler();
+ FuzzyConfig fuzzyConfig = config.get(ConfigurationKeys.FUZZY_CONFIG);
+
+ if (fuzzyConfig == null) {
+ fuzzyConfig = new FuzzyConfig();
+ config.set(ConfigurationKeys.FUZZY_CONFIG, fuzzyConfig);
+ }
+
+ fuzzyConfig.setMinSimilarity(fuzzyMinSim);
}
+ /**
+ * Sets the boost used for each field.
+ *
+ * @param boosts a collection that maps a field to its boost
+ */
public void setFieldsBoost(Map<String, Float> boosts) {
- FieldBoostMapAttribute attr = getQueryConfigHandler().addAttribute(FieldBoostMapAttribute.class);
- attr.setFieldBoostMap(boosts);
+ getQueryConfigHandler().set(ConfigurationKeys.FIELD_BOOST_MAP, boosts);
}
+
+ /**
+ * Returns the field to boost map used to set boost for each field.
+ *
+ * @return the field to boost map
+ */
+ public Map<String, Float> getFieldsBoost() {
+ return getQueryConfigHandler().get(ConfigurationKeys.FIELD_BOOST_MAP);
+ }
+ /**
+ * Sets the default {@link Resolution} used for certain field when
+ * no {@link Resolution} is defined for this field.
+ *
+ * @param dateResolution the default {@link Resolution}
+ */
public void setDateResolution(DateTools.Resolution dateResolution) {
- DateResolutionAttribute attr = getQueryConfigHandler().addAttribute(DateResolutionAttribute.class);
- attr.setDateResolution(dateResolution);
+ getQueryConfigHandler().set(ConfigurationKeys.DATE_RESOLUTION, dateResolution);
}
+
+ /**
+ * Returns the default {@link Resolution} used for certain field when
+ * no {@link Resolution} is defined for this field.
+ *
+ * @return the default {@link Resolution}
+ */
+ public DateTools.Resolution getDateResolution() {
+ return getQueryConfigHandler().get(ConfigurationKeys.DATE_RESOLUTION);
+ }
+ /**
+ * Sets the {@link Resolution} used for each field
+ *
+ * @param dateRes a collection that maps a field to its {@link Resolution}
+ *
+ * @deprecated this method was renamed to {@link #setDateResolutionMap(Map)}
+ */
+ @Deprecated
public void setDateResolution(Map<CharSequence, DateTools.Resolution> dateRes) {
- FieldDateResolutionMapAttribute attr = getQueryConfigHandler().addAttribute(FieldDateResolutionMapAttribute.class);
- attr.setFieldDateResolutionMap(dateRes);
+ setDateResolutionMap(dateRes);
}
+ /**
+ * Returns the field to {@link Resolution} map used to normalize each date field.
+ *
+ * @return the field to {@link Resolution} map
+ */
+ public Map<CharSequence, DateTools.Resolution> getDateResolutionMap() {
+ return getQueryConfigHandler().get(ConfigurationKeys.FIELD_DATE_RESOLUTION_MAP);
+ }
+
+ /**
+ * Sets the {@link Resolution} used for each field
+ *
+ * @param dateRes a collection that maps a field to its {@link Resolution}
+ */
+ public void setDateResolutionMap(Map<CharSequence, DateTools.Resolution> dateRes) {
+ getQueryConfigHandler().set(ConfigurationKeys.FIELD_DATE_RESOLUTION_MAP, dateRes);
+ }
+
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/PrefixWildcardQueryNodeBuilder.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/PrefixWildcardQueryNodeBuilder.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/PrefixWildcardQueryNodeBuilder.java (working copy)
@@ -20,8 +20,8 @@
import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.core.QueryNodeException;
import org.apache.lucene.queryParser.core.nodes.QueryNode;
-import org.apache.lucene.queryParser.standard.config.MultiTermRewriteMethodAttribute;
import org.apache.lucene.queryParser.standard.nodes.PrefixWildcardQueryNode;
+import org.apache.lucene.queryParser.standard.processors.MultiTermRewriteMethodProcessor;
import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.search.PrefixQuery;
@@ -42,7 +42,7 @@
String text = wildcardNode.getText().subSequence(0, wildcardNode.getText().length() - 1).toString();
PrefixQuery q = new PrefixQuery(new Term(wildcardNode.getFieldAsString(), text));
- MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodAttribute.TAG_ID);
+ MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodProcessor.TAG_ID);
if (method != null) {
q.setRewriteMethod(method);
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/RangeQueryNodeBuilder.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/RangeQueryNodeBuilder.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/RangeQueryNodeBuilder.java (working copy)
@@ -21,8 +21,8 @@
import org.apache.lucene.queryParser.core.nodes.ParametricQueryNode;
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.nodes.ParametricQueryNode.CompareOperator;
-import org.apache.lucene.queryParser.standard.config.MultiTermRewriteMethodAttribute;
import org.apache.lucene.queryParser.standard.nodes.RangeQueryNode;
+import org.apache.lucene.queryParser.standard.processors.MultiTermRewriteMethodProcessor;
import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.search.TermRangeQuery;
@@ -55,7 +55,7 @@
TermRangeQuery rangeQuery = TermRangeQuery.newStringRange(field, lower.getTextAsString(), upper.getTextAsString(), lowerInclusive, upperInclusive);
- MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodAttribute.TAG_ID);
+ MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodProcessor.TAG_ID);
if (method != null) {
rangeQuery.setRewriteMethod(method);
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/RegexpQueryNodeBuilder.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/RegexpQueryNodeBuilder.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/RegexpQueryNodeBuilder.java (working copy)
@@ -20,8 +20,8 @@
import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.core.QueryNodeException;
import org.apache.lucene.queryParser.core.nodes.QueryNode;
-import org.apache.lucene.queryParser.standard.config.MultiTermRewriteMethodAttribute;
import org.apache.lucene.queryParser.standard.nodes.RegexpQueryNode;
+import org.apache.lucene.queryParser.standard.processors.MultiTermRewriteMethodProcessor;
import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.search.RegexpQuery;
@@ -41,7 +41,7 @@
regexpNode.textToBytesRef()));
MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod) queryNode
- .getTag(MultiTermRewriteMethodAttribute.TAG_ID);
+ .getTag(MultiTermRewriteMethodProcessor.TAG_ID);
if (method != null) {
q.setRewriteMethod(method);
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/WildcardQueryNodeBuilder.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/WildcardQueryNodeBuilder.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/builders/WildcardQueryNodeBuilder.java (working copy)
@@ -20,8 +20,8 @@
import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.core.QueryNodeException;
import org.apache.lucene.queryParser.core.nodes.QueryNode;
-import org.apache.lucene.queryParser.standard.config.MultiTermRewriteMethodAttribute;
import org.apache.lucene.queryParser.standard.nodes.WildcardQueryNode;
+import org.apache.lucene.queryParser.standard.processors.MultiTermRewriteMethodProcessor;
import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.search.WildcardQuery;
@@ -41,7 +41,7 @@
WildcardQuery q = new WildcardQuery(new Term(wildcardNode.getFieldAsString(),
wildcardNode.getTextAsString()));
- MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodAttribute.TAG_ID);
+ MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodProcessor.TAG_ID);
if (method != null) {
q.setRewriteMethod(method);
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttribute.java (working copy)
@@ -1,33 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.AllowLeadingWildcardProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link AllowLeadingWildcardProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. It basically tells the
- * processor if it should allow leading wildcard. <br/>
- *
- */
-public interface AllowLeadingWildcardAttribute extends Attribute {
- public void setAllowLeadingWildcard(boolean allowLeadingWildcard);
- public boolean isAllowLeadingWildcard();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java (working copy)
@@ -1,79 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.AllowLeadingWildcardProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link AllowLeadingWildcardProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. It basically tells the
- * processor if it should allow leading wildcard. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.AllowLeadingWildcardAttribute
- */
-public class AllowLeadingWildcardAttributeImpl extends AttributeImpl
- implements AllowLeadingWildcardAttribute {
-
- private boolean allowLeadingWildcard = false; // default in 2.9
-
- public void setAllowLeadingWildcard(boolean allowLeadingWildcard) {
- this.allowLeadingWildcard = allowLeadingWildcard;
- }
-
- public boolean isAllowLeadingWildcard() {
- return this.allowLeadingWildcard;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof AllowLeadingWildcardAttributeImpl
- && ((AllowLeadingWildcardAttributeImpl) other).allowLeadingWildcard == this.allowLeadingWildcard) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return this.allowLeadingWildcard ? -1 : Integer.MAX_VALUE;
- }
-
- @Override
- public String toString() {
- return "<allowLeadingWildcard allowLeadingWildcard="
- + this.allowLeadingWildcard + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AnalyzerAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AnalyzerAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AnalyzerAttribute.java (working copy)
@@ -1,35 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.AnalyzerQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link AnalyzerQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. It provides to this
- * processor the {@link Analyzer}, if there is one, which will be used to
- * analyze the query terms. <br/>
- *
- */
-public interface AnalyzerAttribute extends Attribute {
- public void setAnalyzer(Analyzer analyzer);
- public Analyzer getAnalyzer();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AnalyzerAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AnalyzerAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AnalyzerAttributeImpl.java (working copy)
@@ -1,90 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.AnalyzerQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link AnalyzerQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. It provides to this
- * processor the {@link Analyzer}, if there is one, which will be used to
- * analyze the query terms. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.AnalyzerAttribute
- */
-public class AnalyzerAttributeImpl extends AttributeImpl
- implements AnalyzerAttribute {
-
- private Analyzer analyzer;
-
- public AnalyzerAttributeImpl() {
- analyzer = null; //default value 2.4
- }
-
- public void setAnalyzer(Analyzer analyzer) {
- this.analyzer = analyzer;
- }
-
- public Analyzer getAnalyzer() {
- return this.analyzer;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof AnalyzerAttributeImpl) {
- AnalyzerAttributeImpl analyzerAttr = (AnalyzerAttributeImpl) other;
-
- if (analyzerAttr.analyzer == this.analyzer
- || (this.analyzer != null && analyzerAttr.analyzer != null && this.analyzer
- .equals(analyzerAttr.analyzer))) {
-
- return true;
-
- }
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return (this.analyzer == null) ? 0 : this.analyzer.hashCode();
- }
-
- @Override
- public String toString() {
- return "<analyzerAttribute analyzer='" + this.analyzer + "'/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/BoostAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/BoostAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/BoostAttribute.java (working copy)
@@ -1,35 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.FieldConfig;
-import org.apache.lucene.queryParser.standard.processors.MultiFieldQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link MultiFieldQueryNodeProcessor} processor and
- * it should be defined in a {@link FieldConfig}. This processor uses this
- * attribute to define which boost a specific field should have when none is
- * defined to it. <br/>
- * <br/>
- *
- */
-public interface BoostAttribute extends Attribute {
- public void setBoost(float boost);
- public float getBoost();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/BoostAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/BoostAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/BoostAttributeImpl.java (working copy)
@@ -1,84 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.FieldConfig;
-import org.apache.lucene.queryParser.standard.processors.MultiFieldQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link MultiFieldQueryNodeProcessor} processor and
- * it should be defined in a {@link FieldConfig}. This processor uses this
- * attribute to define which boost a specific field should have when none is
- * defined to it. <br/>
- * <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.BoostAttribute
- */
-public class BoostAttributeImpl extends AttributeImpl
- implements BoostAttribute {
-
- private float boost = 1.0f;
-
- public BoostAttributeImpl() {
- // empty constructor
- }
-
- public void setBoost(float boost) {
- this.boost = boost;
- }
-
- public float getBoost() {
- return this.boost;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof BoostAttributeImpl
- && ((BoostAttributeImpl) other).boost == this.boost) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return Float.valueOf(this.boost).hashCode();
- }
-
- @Override
- public String toString() {
- return "<boostAttribute boost=" + this.boost + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DateResolutionAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DateResolutionAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DateResolutionAttribute.java (working copy)
@@ -1,43 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.document.DateTools;
-import org.apache.lucene.document.DateTools.Resolution;
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.nodes.RangeQueryNode;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link ParametricRangeQueryNodeProcessor} processor
- * and must be defined in the {@link QueryConfigHandler}. This attribute tells
- * the processor which {@link Resolution} to use when parsing the date. <br/>
- *
- */
-public interface DateResolutionAttribute extends Attribute {
- /**
- * Sets the default date resolution used by {@link RangeQueryNode}s for
- * fields for which no specific date resolutions has been set. Field
- * specific resolutions can be set with
- *
- * @param dateResolution the default date resolution to set
- */
- public void setDateResolution(DateTools.Resolution dateResolution);
- public DateTools.Resolution getDateResolution();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DateResolutionAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DateResolutionAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DateResolutionAttributeImpl.java (working copy)
@@ -1,90 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.document.DateTools;
-import org.apache.lucene.document.DateTools.Resolution;
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link ParametricRangeQueryNodeProcessor} processor
- * and must be defined in the {@link QueryConfigHandler}. This attribute tells
- * the processor which {@link Resolution} to use when parsing the date. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.DateResolutionAttribute
- */
-public class DateResolutionAttributeImpl extends AttributeImpl
- implements DateResolutionAttribute {
-
- private DateTools.Resolution dateResolution = null;
-
- public DateResolutionAttributeImpl() {
- dateResolution = null; //default in 2.4
- }
-
- public void setDateResolution(DateTools.Resolution dateResolution) {
- this.dateResolution = dateResolution;
- }
-
- public DateTools.Resolution getDateResolution() {
- return this.dateResolution;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof DateResolutionAttributeImpl) {
- DateResolutionAttributeImpl dateResAttr = (DateResolutionAttributeImpl) other;
-
- if (dateResAttr.getDateResolution() == getDateResolution()
- || dateResAttr.getDateResolution().equals(getDateResolution())) {
-
- return true;
-
- }
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return (this.dateResolution == null) ? 0 : this.dateResolution.hashCode();
- }
-
- @Override
- public String toString() {
- return "<dateResolutionAttribute dateResolution='" + this.dateResolution
- + "'/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultOperatorAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultOperatorAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultOperatorAttribute.java (working copy)
@@ -1,39 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.GroupQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link GroupQueryNodeProcessor} processor and must
- * be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor which is the default boolean operator when no operator is defined
- * between terms. <br/>
- *
- */
-public interface DefaultOperatorAttribute extends Attribute {
- public static enum Operator {
- AND, OR;
- }
-
- public void setOperator(Operator operator);
- public Operator getOperator();
-}
-
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultOperatorAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultOperatorAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultOperatorAttributeImpl.java (working copy)
@@ -1,92 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.GroupQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link GroupQueryNodeProcessor} processor and must
- * be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor which is the default boolean operator when no operator is defined
- * between terms. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute
- */
-public class DefaultOperatorAttributeImpl extends AttributeImpl
- implements DefaultOperatorAttribute {
-
- private Operator operator = Operator.OR;
-
- public DefaultOperatorAttributeImpl() {
- // empty constructor
- }
-
- public void setOperator(Operator operator) {
-
- if (operator == null) {
- throw new IllegalArgumentException("default operator cannot be null!");
- }
-
- this.operator = operator;
-
- }
-
- public Operator getOperator() {
- return this.operator;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof DefaultOperatorAttributeImpl) {
- DefaultOperatorAttributeImpl defaultOperatorAttr = (DefaultOperatorAttributeImpl) other;
-
- if (defaultOperatorAttr.getOperator() == this.getOperator()) {
- return true;
-
- }
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return getOperator().hashCode() * 31;
- }
-
- @Override
- public String toString() {
- return "<defaultOperatorAttribute operator=" + this.operator.name() + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultPhraseSlopAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultPhraseSlopAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultPhraseSlopAttribute.java (working copy)
@@ -1,34 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.PhraseSlopQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link PhraseSlopQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor what is the default phrase slop when no slop is defined in a
- * phrase. <br/>
- *
- */
-public interface DefaultPhraseSlopAttribute extends Attribute {
- public void setDefaultPhraseSlop(int defaultPhraseSlop);
- public int getDefaultPhraseSlop();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultPhraseSlopAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultPhraseSlopAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/DefaultPhraseSlopAttributeImpl.java (working copy)
@@ -1,84 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.PhraseSlopQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link PhraseSlopQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor what is the default phrase slop when no slop is defined in a
- * phrase. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute
- */
-public class DefaultPhraseSlopAttributeImpl extends AttributeImpl
- implements DefaultPhraseSlopAttribute {
-
- private int defaultPhraseSlop = 0;
-
- public DefaultPhraseSlopAttributeImpl() {
- defaultPhraseSlop = 0; //default value in 2.4
- }
-
- public void setDefaultPhraseSlop(int defaultPhraseSlop) {
- this.defaultPhraseSlop = defaultPhraseSlop;
- }
-
- public int getDefaultPhraseSlop() {
- return this.defaultPhraseSlop;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof DefaultPhraseSlopAttributeImpl
- && ((DefaultPhraseSlopAttributeImpl) other).defaultPhraseSlop == this.defaultPhraseSlop) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return Integer.valueOf(this.defaultPhraseSlop).hashCode();
- }
-
- @Override
- public String toString() {
- return "<defaultPhraseSlop defaultPhraseSlop=" + this.defaultPhraseSlop
- + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapAttribute.java (working copy)
@@ -1,35 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.Map;
-
-import org.apache.lucene.queryParser.core.config.FieldConfig;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute enables the user to define a default boost per field.
- * it's used by {@link FieldBoostMapFCListener#buildFieldConfig(FieldConfig)}
- */
-public interface FieldBoostMapAttribute extends Attribute {
- /**
- * @param boosts a mapping from field name to its default boost
- */
- public void setFieldBoostMap(Map<String, Float> boosts);
- public Map<String, Float> getFieldBoostMap();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapAttributeImpl.java (working copy)
@@ -1,92 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.LinkedHashMap;
-import java.util.Map;
-
-import org.apache.lucene.queryParser.core.config.FieldConfig;
-import org.apache.lucene.queryParser.standard.processors.MultiFieldQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link MultiFieldQueryNodeProcessor} processor and
- * it should be defined in a {@link FieldConfig}. This processor uses this
- * attribute to define which boost a specific field should have when none is
- * defined to it. <br/>
- * <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.BoostAttribute
- */
-public class FieldBoostMapAttributeImpl extends AttributeImpl
- implements FieldBoostMapAttribute {
-
- private Map<String, Float> boosts = new LinkedHashMap<String, Float>();
-
-
- public FieldBoostMapAttributeImpl() {
- // empty constructor
- }
-
- public void setFieldBoostMap(Map<String, Float> boosts) {
- this.boosts = boosts;
- }
-
- public Map<String, Float> getFieldBoostMap() {
- return this.boosts;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof FieldBoostMapAttributeImpl
- && ((FieldBoostMapAttributeImpl) other).boosts.equals(this.boosts) ) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- final int prime = 97;
- if (this.boosts != null)
- return this.boosts.hashCode() * prime;
- else
- return Float.valueOf(prime).hashCode();
- }
-
- @Override
- public String toString() {
- return "<fieldBoostMapAttribute map=" + this.boosts + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapFCListener.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapFCListener.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldBoostMapFCListener.java (working copy)
@@ -17,18 +17,21 @@
* limitations under the License.
*/
+import java.util.Map;
+
import org.apache.lucene.queryParser.core.config.FieldConfig;
import org.apache.lucene.queryParser.core.config.FieldConfigListener;
import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
/**
* This listener listens for every field configuration request and assign a
- * {@link BoostAttribute} to the equivalent {@link FieldConfig} based on a
- * defined map: fieldName -> boostValue store in {@link FieldBoostMapAttribute}
- * in the {@link FieldBoostMapAttribute}.
+ * {@link ConfigurationKeys#BOOST} to the
+ * equivalent {@link FieldConfig} based on a defined map: fieldName -> boostValue stored in
+ * {@link ConfigurationKeys#FIELD_BOOST_MAP}.
*
- * @see BoostAttribute
- * @see FieldBoostMapAttribute
+ * @see ConfigurationKeys#FIELD_BOOST_MAP
+ * @see ConfigurationKeys#BOOST
* @see FieldConfig
* @see FieldConfigListener
*/
@@ -40,15 +43,14 @@
this.config = config;
}
- public void buildFieldConfig(FieldConfig fieldConfig) {
- if (this.config.hasAttribute(FieldBoostMapAttribute.class)) {
- FieldBoostMapAttribute fieldBoostMapAttr = this.config.getAttribute(FieldBoostMapAttribute.class);
- BoostAttribute boostAttr = fieldConfig.addAttribute(BoostAttribute.class);
-
- Float boost = fieldBoostMapAttr.getFieldBoostMap().get(fieldConfig.getField());
+ public void buildFieldConfig(FieldConfig fieldConfig) {
+ Map<String, Float> fieldBoostMap = this.config.get(ConfigurationKeys.FIELD_BOOST_MAP);
+
+ if (fieldBoostMap != null) {
+ Float boost = fieldBoostMap.get(fieldConfig.getField());
if (boost != null) {
- boostAttr.setBoost(boost.floatValue());
+ fieldConfig.set(ConfigurationKeys.BOOST, boost);
}
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionFCListener.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionFCListener.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionFCListener.java (working copy)
@@ -17,20 +17,23 @@
* limitations under the License.
*/
+import java.util.Map;
+
import org.apache.lucene.document.DateTools;
+import org.apache.lucene.document.DateTools.Resolution;
import org.apache.lucene.queryParser.core.config.FieldConfig;
import org.apache.lucene.queryParser.core.config.FieldConfigListener;
import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
/**
* This listener listens for every field configuration request and assign a
- * {@link DateResolutionAttribute} to the equivalent {@link FieldConfig} based
- * on a defined map: fieldName -> DateTools.Resolution stored in
- * {@link FieldDateResolutionMapAttribute} in the
- * {@link DateResolutionAttribute}.
+ * {@link ConfigurationKeys#DATE_RESOLUTION} to the equivalent {@link FieldConfig} based
+ * on a defined map: fieldName -> {@link Resolution} stored in
+ * {@link ConfigurationKeys#FIELD_DATE_RESOLUTION_MAP}.
*
- * @see DateResolutionAttribute
- * @see FieldDateResolutionMapAttribute
+ * @see ConfigurationKeys#DATE_RESOLUTION
+ * @see ConfigurationKeys#FIELD_DATE_RESOLUTION_MAP
* @see FieldConfig
* @see FieldConfigListener
*/
@@ -43,30 +46,22 @@
}
public void buildFieldConfig(FieldConfig fieldConfig) {
- DateResolutionAttribute fieldDateResAttr = fieldConfig
- .addAttribute(DateResolutionAttribute.class);
DateTools.Resolution dateRes = null;
+ Map<CharSequence, DateTools.Resolution> dateResMap = this.config.get(ConfigurationKeys.FIELD_DATE_RESOLUTION_MAP);
- if (this.config.hasAttribute(FieldDateResolutionMapAttribute.class)) {
- FieldDateResolutionMapAttribute dateResMapAttr = this.config
- .addAttribute(FieldDateResolutionMapAttribute.class);
- dateRes = dateResMapAttr.getFieldDateResolutionMap().get(
+ if (dateResMap != null) {
+ dateRes = dateResMap.get(
fieldConfig.getField());
}
if (dateRes == null) {
+ dateRes = this.config.get(ConfigurationKeys.DATE_RESOLUTION);
+ }
- if (this.config.hasAttribute(DateResolutionAttribute.class)) {
- DateResolutionAttribute dateResAttr = this.config
- .addAttribute(DateResolutionAttribute.class);
- dateRes = dateResAttr.getDateResolution();
-
- }
-
+ if (dateRes != null) {
+ fieldConfig.set(ConfigurationKeys.DATE_RESOLUTION, dateRes);
}
- fieldDateResAttr.setDateResolution(dateRes);
-
}
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionMapAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionMapAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionMapAttribute.java (working copy)
@@ -1,35 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.Map;
-
-import org.apache.lucene.document.DateTools;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute enables the user to define a default DateResolution per field.
- * it's used by {@link FieldDateResolutionFCListener#buildFieldConfig(org.apache.lucene.queryParser.core.config.FieldConfig)}
- */
-public interface FieldDateResolutionMapAttribute extends Attribute {
- /**
- * @param dateRes a mapping from field name to its default boost
- */
- public void setFieldDateResolutionMap(Map<CharSequence, DateTools.Resolution> dateRes);
- public Map<CharSequence, DateTools.Resolution> getFieldDateResolutionMap();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionMapAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionMapAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FieldDateResolutionMapAttributeImpl.java (working copy)
@@ -1,89 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.HashMap;
-import java.util.Map;
-
-import org.apache.lucene.document.DateTools;
-import org.apache.lucene.document.DateTools.Resolution;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute enables the user to define a default DateResolution per field.
- * it's used by {@link FieldDateResolutionFCListener#buildFieldConfig(org.apache.lucene.queryParser.core.config.FieldConfig)}
- *
- * @see FieldDateResolutionMapAttribute
- */
-public class FieldDateResolutionMapAttributeImpl extends AttributeImpl
- implements FieldDateResolutionMapAttribute {
-
- private Map<CharSequence, DateTools.Resolution> dateRes = new HashMap<CharSequence, DateTools.Resolution>();
-
-
- public FieldDateResolutionMapAttributeImpl() {
- // empty constructor
- }
-
- public void setFieldDateResolutionMap(Map<CharSequence, DateTools.Resolution> dateRes) {
- this.dateRes = dateRes;
- }
-
- public Map<CharSequence, Resolution> getFieldDateResolutionMap() {
- return this.dateRes;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof FieldDateResolutionMapAttributeImpl
- && ((FieldDateResolutionMapAttributeImpl) other).dateRes.equals(this.dateRes) ) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- final int prime = 97;
- if (this.dateRes != null)
- return this.dateRes.hashCode() * prime;
- else
- return Float.valueOf(prime).hashCode();
- }
-
- @Override
- public String toString() {
- return "<fieldDateResolutionMapAttribute map=" + this.dateRes + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyAttribute.java (working copy)
@@ -1,36 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.PhraseSlopQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link PhraseSlopQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor what is the default phrase slop when no slop is defined in a
- * phrase. <br/>
- *
- */
-public interface FuzzyAttribute extends Attribute {
- public void setPrefixLength(int prefixLength);
- public int getPrefixLength();
- public void setFuzzyMinSimilarity(float minSimilarity);
- public float getFuzzyMinSimilarity();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyAttributeImpl.java (working copy)
@@ -1,94 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.PhraseSlopQueryNodeProcessor;
-import org.apache.lucene.search.FuzzyQuery;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link PhraseSlopQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor what is the default phrase slop when no slop is defined in a
- * phrase. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.FuzzyAttribute
- */
-public class FuzzyAttributeImpl extends AttributeImpl
- implements FuzzyAttribute {
-
- private int prefixLength = FuzzyQuery.defaultPrefixLength;
-
- private float minSimilarity = FuzzyQuery.defaultMinSimilarity;
-
- public FuzzyAttributeImpl() {
- // empty constructor
- }
-
- public void setPrefixLength(int prefixLength) {
- this.prefixLength = prefixLength;
- }
-
- public int getPrefixLength() {
- return this.prefixLength;
- }
-
- public void setFuzzyMinSimilarity(float minSimilarity) {
- this.minSimilarity = minSimilarity;
- }
-
- public float getFuzzyMinSimilarity() {
- return this.minSimilarity;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof FuzzyAttributeImpl
- && ((FuzzyAttributeImpl) other).prefixLength == this.prefixLength) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return Integer.valueOf(this.prefixLength).hashCode();
- }
-
- @Override
- public String toString() {
- return "<fuzzyAttribute prefixLength=" + this.prefixLength + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyConfig.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyConfig.java (revision 0)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyConfig.java (revision 0)
@@ -0,0 +1,46 @@
+package org.apache.lucene.queryParser.standard.config;
+
+/**
+ * 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 org.apache.lucene.search.FuzzyQuery;
+
+public class FuzzyConfig {
+
+ private int prefixLength = FuzzyQuery.defaultPrefixLength;
+
+ private float minSimilarity = FuzzyQuery.defaultMinSimilarity;
+
+ public FuzzyConfig() {}
+
+ public int getPrefixLength() {
+ return prefixLength;
+ }
+
+ public void setPrefixLength(int prefixLength) {
+ this.prefixLength = prefixLength;
+ }
+
+ public float getMinSimilarity() {
+ return minSimilarity;
+ }
+
+ public void setMinSimilarity(float minSimilarity) {
+ this.minSimilarity = minSimilarity;
+ }
+
+}
Property changes on: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/FuzzyConfig.java
___________________________________________________________________
Added: svn:keywords
+ Rev Date
Added: svn:eol-style
+ native
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LocaleAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LocaleAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LocaleAttribute.java (working copy)
@@ -1,35 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.Locale;
-
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by processor {@link ParametricRangeQueryNodeProcessor}
- * and must be defined in the {@link QueryConfigHandler}. This attribute tells
- * the processor what is the default {@link Locale} used to parse a date. <br/>
- *
- */
-public interface LocaleAttribute extends Attribute {
- public void setLocale(Locale locale);
- public Locale getLocale();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LocaleAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LocaleAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LocaleAttributeImpl.java (working copy)
@@ -1,90 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.Locale;
-
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by processor {@link ParametricRangeQueryNodeProcessor}
- * and must be defined in the {@link QueryConfigHandler}. This attribute tells
- * the processor what is the default {@link Locale} used to parse a date. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.LocaleAttribute
- */
-public class LocaleAttributeImpl extends AttributeImpl
- implements LocaleAttribute {
-
- private Locale locale = Locale.getDefault();
-
- public LocaleAttributeImpl() {
- locale = Locale.getDefault(); //default in 2.4
- }
-
- public void setLocale(Locale locale) {
- this.locale = locale;
- }
-
- public Locale getLocale() {
- return this.locale;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof LocaleAttributeImpl) {
- LocaleAttributeImpl localeAttr = (LocaleAttributeImpl) other;
-
- if (localeAttr.locale == this.locale
- || (this.locale != null && localeAttr.locale != null && this.locale
- .equals(localeAttr.locale))) {
-
- return true;
-
- }
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return (this.locale == null) ? 0 : this.locale.hashCode();
- }
-
- @Override
- public String toString() {
- return "<localeAttribute locale=" + this.locale + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LowercaseExpandedTermsAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LowercaseExpandedTermsAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LowercaseExpandedTermsAttribute.java (working copy)
@@ -1,35 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.Locale;
-
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by processor {@link ParametricRangeQueryNodeProcessor}
- * and must be defined in the {@link QueryConfigHandler}. This attribute tells
- * the processor what is the default {@link Locale} used to parse a date. <br/>
- *
- */
-public interface LowercaseExpandedTermsAttribute extends Attribute {
- public void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms);
- public boolean isLowercaseExpandedTerms();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LowercaseExpandedTermsAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LowercaseExpandedTermsAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/LowercaseExpandedTermsAttributeImpl.java (working copy)
@@ -1,85 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.Locale;
-
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by processor {@link ParametricRangeQueryNodeProcessor}
- * and must be defined in the {@link QueryConfigHandler}. This attribute tells
- * the processor what is the default {@link Locale} used to parse a date. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.LowercaseExpandedTermsAttribute
- */
-public class LowercaseExpandedTermsAttributeImpl extends AttributeImpl
- implements LowercaseExpandedTermsAttribute {
-
- private boolean lowercaseExpandedTerms = true;
-
- public LowercaseExpandedTermsAttributeImpl() {
- lowercaseExpandedTerms = true; // default in 2.4
- }
-
- public void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms) {
- this.lowercaseExpandedTerms = lowercaseExpandedTerms;
- }
-
- public boolean isLowercaseExpandedTerms() {
- return this.lowercaseExpandedTerms;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof LowercaseExpandedTermsAttributeImpl
- && ((LowercaseExpandedTermsAttributeImpl) other).lowercaseExpandedTerms == this.lowercaseExpandedTerms) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return this.lowercaseExpandedTerms ? -1 : Integer.MAX_VALUE;
- }
-
- @Override
- public String toString() {
- return "<lowercaseExpandedTerms lowercaseExpandedTerms="
- + this.lowercaseExpandedTerms + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiFieldAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiFieldAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiFieldAttribute.java (working copy)
@@ -1,33 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.MultiFieldQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link MultiFieldQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor to which fields the terms in the query should be expanded. <br/>
- *
- */
-public interface MultiFieldAttribute extends Attribute {
- public void setFields(CharSequence[] fields);
- public CharSequence[] getFields();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiFieldAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiFieldAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiFieldAttributeImpl.java (working copy)
@@ -1,84 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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.util.Arrays;
-
-import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.MultiFieldQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link MultiFieldQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor to which fields the terms in the query should be expanded. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.MultiFieldAttribute
- */
-public class MultiFieldAttributeImpl extends AttributeImpl
- implements MultiFieldAttribute {
-
- private CharSequence[] fields;
-
- public MultiFieldAttributeImpl() {
- // empty constructor
- }
-
- public void setFields(CharSequence[] fields) {
- this.fields = fields;
- }
-
- public CharSequence[] getFields() {
- return this.fields;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof MultiFieldAttributeImpl) {
- MultiFieldAttributeImpl fieldsAttr = (MultiFieldAttributeImpl) other;
-
- return Arrays.equals(this.fields, fieldsAttr.fields);
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return Arrays.hashCode(this.fields);
- }
-
- @Override
- public String toString() {
- return "<fieldsAttribute fields=" + Arrays.toString(this.fields) + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiTermRewriteMethodAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiTermRewriteMethodAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiTermRewriteMethodAttribute.java (working copy)
@@ -1,40 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.search.MultiTermQuery;
-import org.apache.lucene.search.MultiTermQuery.RewriteMethod;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link ParametricRangeQueryNodeProcessor} processor
- * and should be defined in the {@link QueryConfigHandler} used by this
- * processor. It basically tells the processor which {@link RewriteMethod} to
- * use. <br/>
- *
- */
-public interface MultiTermRewriteMethodAttribute extends Attribute {
-
- public static final String TAG_ID = "MultiTermRewriteMethodAttribute";
-
- public void setMultiTermRewriteMethod(MultiTermQuery.RewriteMethod method);
-
- public MultiTermQuery.RewriteMethod getMultiTermRewriteMethod();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiTermRewriteMethodAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiTermRewriteMethodAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/MultiTermRewriteMethodAttributeImpl.java (working copy)
@@ -1,86 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.ParametricRangeQueryNodeProcessor;
-import org.apache.lucene.search.MultiTermQuery;
-import org.apache.lucene.search.MultiTermQuery.RewriteMethod;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link ParametricRangeQueryNodeProcessor} processor
- * and should be defined in the {@link QueryConfigHandler} used by this
- * processor. It basically tells the processor which {@link RewriteMethod} to
- * use. <br/>
- *
- * @see MultiTermRewriteMethodAttribute
- */
-public class MultiTermRewriteMethodAttributeImpl extends AttributeImpl
- implements MultiTermRewriteMethodAttribute {
-
- private MultiTermQuery.RewriteMethod multiTermRewriteMethod = MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT;
-
- public MultiTermRewriteMethodAttributeImpl() {
- // empty constructor
- }
-
- public void setMultiTermRewriteMethod(MultiTermQuery.RewriteMethod method) {
- multiTermRewriteMethod = method;
- }
-
- public MultiTermQuery.RewriteMethod getMultiTermRewriteMethod() {
- return multiTermRewriteMethod;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof MultiTermRewriteMethodAttributeImpl
- && ((MultiTermRewriteMethodAttributeImpl) other).multiTermRewriteMethod == this.multiTermRewriteMethod) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return multiTermRewriteMethod.hashCode();
- }
-
- @Override
- public String toString() {
- return "<multiTermRewriteMethod multiTermRewriteMethod="
- + this.multiTermRewriteMethod + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/PositionIncrementsAttribute.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/PositionIncrementsAttribute.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/PositionIncrementsAttribute.java (working copy)
@@ -1,33 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.AnalyzerQueryNodeProcessor;
-import org.apache.lucene.util.Attribute;
-
-/**
- * This attribute is used by {@link AnalyzerQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor if the position increment is enabled. <br/>
- *
- */
-public interface PositionIncrementsAttribute extends Attribute {
- public void setPositionIncrementsEnabled(boolean positionIncrementsEnabled);
- public boolean isPositionIncrementsEnabled();
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/PositionIncrementsAttributeImpl.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/PositionIncrementsAttributeImpl.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/PositionIncrementsAttributeImpl.java (working copy)
@@ -1,83 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.queryParser.core.config.QueryConfigHandler;
-import org.apache.lucene.queryParser.standard.processors.AnalyzerQueryNodeProcessor;
-import org.apache.lucene.util.AttributeImpl;
-
-/**
- * This attribute is used by {@link AnalyzerQueryNodeProcessor} processor and
- * must be defined in the {@link QueryConfigHandler}. This attribute tells the
- * processor if the position increment is enabled. <br/>
- *
- * @see org.apache.lucene.queryParser.standard.config.PositionIncrementsAttribute
- */
-public class PositionIncrementsAttributeImpl extends AttributeImpl
- implements PositionIncrementsAttribute {
-
- private boolean positionIncrementsEnabled = false;
-
- public PositionIncrementsAttributeImpl() {
- positionIncrementsEnabled = false; //default in 2.4
- }
-
- public void setPositionIncrementsEnabled(boolean positionIncrementsEnabled) {
- this.positionIncrementsEnabled = positionIncrementsEnabled;
- }
-
- public boolean isPositionIncrementsEnabled() {
- return this.positionIncrementsEnabled;
- }
-
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void copyTo(AttributeImpl target) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object other) {
-
- if (other instanceof PositionIncrementsAttributeImpl
- && ((PositionIncrementsAttributeImpl) other).positionIncrementsEnabled == this.positionIncrementsEnabled) {
-
- return true;
-
- }
-
- return false;
-
- }
-
- @Override
- public int hashCode() {
- return this.positionIncrementsEnabled ? -1 : Integer.MAX_VALUE;
- }
-
- @Override
- public String toString() {
- return "<positionIncrements positionIncrementsEnabled="
- + this.positionIncrementsEnabled + "/>";
- }
-
-}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/StandardQueryConfigHandler.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/StandardQueryConfigHandler.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/StandardQueryConfigHandler.java (working copy)
@@ -17,37 +17,173 @@
* limitations under the License.
*/
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.document.DateTools;
+import org.apache.lucene.document.DateTools.Resolution;
+import org.apache.lucene.queryParser.core.config.ConfigurationKey;
+import org.apache.lucene.queryParser.core.config.FieldConfig;
import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
+import org.apache.lucene.queryParser.standard.StandardQueryParser;
import org.apache.lucene.queryParser.standard.processors.StandardQueryNodeProcessorPipeline;
+import org.apache.lucene.search.MultiTermQuery;
+import org.apache.lucene.search.MultiTermQuery.RewriteMethod;
/**
* This query configuration handler is used for almost every processor defined
* in the {@link StandardQueryNodeProcessorPipeline} processor pipeline. It holds
- * attributes that reproduces the configuration that could be set on the old
+ * configuration methods that reproduce the configuration methods that could be set on the old
* lucene 2.4 QueryParser class. <br/>
*
* @see StandardQueryNodeProcessorPipeline
*/
public class StandardQueryConfigHandler extends QueryConfigHandler {
+ final public static class ConfigurationKeys {
+
+ /**
+ * Key used to set whether position increments is enabled
+ *
+ * @see StandardQueryParser#setEnablePositionIncrements(boolean)
+ * @see StandardQueryParser#getEnablePositionIncrements()
+ */
+ final public static ConfigurationKey<Boolean> ENABLE_POSITION_INCREMENTS = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set whether expanded terms should be expanded
+ *
+ * @see StandardQueryParser#setLowercaseExpandedTerms(boolean)
+ * @see StandardQueryParser#getLowercaseExpandedTerms()
+ */
+ final public static ConfigurationKey<Boolean> LOWERCASE_EXPANDED_TERMS = ConfigurationKey.newInstance();
+ /**
+ * Key used to set whether leading wildcards are supported
+ *
+ * @see StandardQueryParser#setAllowLeadingWildcard(boolean)
+ * @see StandardQueryParser#getAllowLeadingWildcard()
+ */
+ final public static ConfigurationKey<Boolean> ALLOW_LEADING_WILDCARD = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set the {@link Analyzer} used for terms found in the query
+ *
+ * @see StandardQueryParser#setAnalyzer(Analyzer)
+ * @see StandardQueryParser#getAnalyzer()
+ */
+ final public static ConfigurationKey<Analyzer> ANALYZER = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set the default boolean operator
+ *
+ * @see StandardQueryParser#setDefaultOperator(org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.Operator)
+ * @see StandardQueryParser#getDefaultOperator()
+ */
+ final public static ConfigurationKey<Operator> DEFAULT_OPERATOR = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set the default phrase slop
+ *
+ * @see StandardQueryParser#setPhraseSlop(int)
+ * @see StandardQueryParser#getPhraseSlop()
+ */
+ final public static ConfigurationKey<Integer> PHRASE_SLOP = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set the {@link Locale} used when parsing the query
+ *
+ * @see StandardQueryParser#setLocale(Locale)
+ * @see StandardQueryParser#getLocale()
+ */
+ final public static ConfigurationKey<Locale> LOCALE = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set the {@link RewriteMethod} used when creating queries
+ *
+ * @see StandardQueryParser#setMultiTermRewriteMethod(org.apache.lucene.search.MultiTermQuery.RewriteMethod)
+ * @see StandardQueryParser#getMultiTermRewriteMethod()
+ */
+ final public static ConfigurationKey<MultiTermQuery.RewriteMethod> MULTI_TERM_REWRITE_METHOD = ConfigurationKey.newInstance();
+ /**
+ * Key used to set the fields a query should be expanded to when the field
+ * is <code>null</code>
+ *
+ * @see StandardQueryParser#setMultiFields(CharSequence[])
+ * @see StandardQueryParser#getMultiFields(CharSequence[])
+ */
+ final public static ConfigurationKey<CharSequence[]> MULTI_FIELDS = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set a field to boost map that is used to set the boost for each field
+ *
+ * @see StandardQueryParser#setFieldsBoost(Map)
+ * @see StandardQueryParser#getFieldsBoost()
+ */
+ final public static ConfigurationKey<Map<String,Float>> FIELD_BOOST_MAP = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set a field to {@link Resolution} map that is used
+ * to normalize each date field value.
+ *
+ * @see StandardQueryParser#setDateResolutionMap(Map)
+ * @see StandardQueryParser#getDateResolutionMap()
+ */
+ final public static ConfigurationKey<Map<CharSequence, DateTools.Resolution>> FIELD_DATE_RESOLUTION_MAP = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set the {@link FuzzyConfig} used to create fuzzy queries.
+ *
+ * @see StandardQueryParser#setFuzzyMinSim(float)
+ * @see StandardQueryParser#setFuzzyPrefixLength(int)
+ * @see StandardQueryParser#getFuzzyMinSim()
+ * @see StandardQueryParser#getFuzzyPrefixLength()
+ */
+ final public static ConfigurationKey<FuzzyConfig> FUZZY_CONFIG = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set default {@link Resolution}.
+ *
+ * @see StandardQueryParser#setDateResolution(org.apache.lucene.document.DateTools.Resolution)
+ * @see StandardQueryParser#getDateResolution()
+ */
+ final public static ConfigurationKey<DateTools.Resolution> DATE_RESOLUTION = ConfigurationKey.newInstance();
+
+ /**
+ * Key used to set the boost value in {@link FieldConfig} objects.
+ *
+ * @see StandardQueryParser#setFieldsBoost(Map)
+ * @see StandardQueryParser#getFieldsBoost()
+ */
+ final public static ConfigurationKey<Float> BOOST = ConfigurationKey.newInstance();
+
+ }
+
+ public static enum Operator {
+ AND, OR;
+ }
+
public StandardQueryConfigHandler() {
- // Add listener that will build the FieldConfig attributes.
+ // Add listener that will build the FieldConfig.
addFieldConfigListener(new FieldBoostMapFCListener(this));
addFieldConfigListener(new FieldDateResolutionFCListener(this));
-
+
// Default Values
- addAttribute(DefaultOperatorAttribute.class);
- addAttribute(AnalyzerAttribute.class);
- addAttribute(FuzzyAttribute.class);
- addAttribute(LowercaseExpandedTermsAttribute.class);
- addAttribute(MultiTermRewriteMethodAttribute.class);
- addAttribute(AllowLeadingWildcardAttribute.class);
- addAttribute(PositionIncrementsAttribute.class);
- addAttribute(LocaleAttribute.class);
- addAttribute(DefaultPhraseSlopAttribute.class);
- addAttribute(MultiTermRewriteMethodAttribute.class);
+ set(ConfigurationKeys.ALLOW_LEADING_WILDCARD, false); // default in 2.9
+ set(ConfigurationKeys.ANALYZER, null); //default value 2.4
+ set(ConfigurationKeys.DEFAULT_OPERATOR, Operator.OR);
+ set(ConfigurationKeys.PHRASE_SLOP, 0); //default value 2.4
+ set(ConfigurationKeys.LOWERCASE_EXPANDED_TERMS, true); //default value 2.4
+ set(ConfigurationKeys.ENABLE_POSITION_INCREMENTS, false); //default value 2.4
+ set(ConfigurationKeys.FIELD_BOOST_MAP, new LinkedHashMap<String, Float>());
+ set(ConfigurationKeys.FUZZY_CONFIG, new FuzzyConfig());
+ set(ConfigurationKeys.LOCALE, Locale.getDefault());
+ set(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD, MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT);
+ set(ConfigurationKeys.FIELD_DATE_RESOLUTION_MAP, new HashMap<CharSequence, DateTools.Resolution>());
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/package.html
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/package.html (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/package.html (working copy)
@@ -24,7 +24,7 @@
<h2>Standard Lucene Query Configuration</h2>
<p>
The package org.apache.lucene.queryParser.standard.config contains the Lucene
-query configuration handler and all the attributes used by it. This configuration
+query configuration handler (StandardQueryConfigHandler). This configuration
handler reproduces almost everything that could be set on the old query parser.
</p>
<p>
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/AllowLeadingWildcardProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/AllowLeadingWildcardProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/AllowLeadingWildcardProcessor.java (working copy)
@@ -26,18 +26,18 @@
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
import org.apache.lucene.queryParser.core.util.UnescapedCharSequence;
-import org.apache.lucene.queryParser.standard.config.AllowLeadingWildcardAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
import org.apache.lucene.queryParser.standard.nodes.WildcardQueryNode;
import org.apache.lucene.queryParser.standard.parser.EscapeQuerySyntaxImpl;
/**
- * This processor verifies if the attribute
- * {@link AllowLeadingWildcardAttribute} is defined in the
+ * This processor verifies if
+ * {@link ConfigurationKeys#ALLOW_LEADING_WILDCARD} is defined in the
* {@link QueryConfigHandler}. If it is and leading wildcard is not allowed, it
* looks for every {@link WildcardQueryNode} contained in the query node tree
* and throws an exception if any of them has a leading wildcard ('*' or '?'). <br/>
*
- * @see AllowLeadingWildcardAttribute
+ * @see ConfigurationKeys#ALLOW_LEADING_WILDCARD
*/
public class AllowLeadingWildcardProcessor extends QueryNodeProcessorImpl {
@@ -47,11 +47,11 @@
@Override
public QueryNode process(QueryNode queryTree) throws QueryNodeException {
+ Boolean allowsLeadingWildcard = getQueryConfigHandler().get(ConfigurationKeys.ALLOW_LEADING_WILDCARD);
- if (getQueryConfigHandler().hasAttribute(AllowLeadingWildcardAttribute.class)) {
+ if (allowsLeadingWildcard != null) {
- AllowLeadingWildcardAttribute alwAttr= getQueryConfigHandler().getAttribute(AllowLeadingWildcardAttribute.class);
- if (!alwAttr.isAllowLeadingWildcard()) {
+ if (!allowsLeadingWildcard) {
return super.process(queryTree);
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/AnalyzerQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/AnalyzerQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/AnalyzerQueryNodeProcessor.java (working copy)
@@ -40,14 +40,14 @@
import org.apache.lucene.queryParser.core.nodes.TextableQueryNode;
import org.apache.lucene.queryParser.core.nodes.TokenizedPhraseQueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
-import org.apache.lucene.queryParser.standard.config.AnalyzerAttribute;
-import org.apache.lucene.queryParser.standard.config.PositionIncrementsAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
import org.apache.lucene.queryParser.standard.nodes.MultiPhraseQueryNode;
import org.apache.lucene.queryParser.standard.nodes.StandardBooleanQueryNode;
import org.apache.lucene.queryParser.standard.nodes.WildcardQueryNode;
/**
- * This processor verifies if the attribute {@link AnalyzerQueryNodeProcessor}
+ * This processor verifies if {@link ConfigurationKeys#ANALYZER}
* is defined in the {@link QueryConfigHandler}. If it is and the analyzer is
* not <code>null</code>, it looks for every {@link FieldQueryNode} that is not
* {@link WildcardQueryNode}, {@link FuzzyQueryNode} or
@@ -64,6 +64,7 @@
* If no term is returned by the analyzer a {@link NoTokenFoundQueryNode} object
* is returned. <br/>
*
+ * @see ConfigurationKeys#ANALYZER
* @see Analyzer
* @see TokenStream
*/
@@ -79,24 +80,15 @@
@Override
public QueryNode process(QueryNode queryTree) throws QueryNodeException {
-
- if (getQueryConfigHandler().hasAttribute(AnalyzerAttribute.class)) {
-
- this.analyzer = getQueryConfigHandler().getAttribute(
- AnalyzerAttribute.class).getAnalyzer();
-
+ Analyzer analyzer = getQueryConfigHandler().get(ConfigurationKeys.ANALYZER);
+
+ if (analyzer != null) {
+ this.analyzer = analyzer;
this.positionIncrementsEnabled = false;
+ Boolean positionIncrementsEnabled = getQueryConfigHandler().get(ConfigurationKeys.ENABLE_POSITION_INCREMENTS);
- if (getQueryConfigHandler().hasAttribute(
- PositionIncrementsAttribute.class)) {
-
- if (getQueryConfigHandler().getAttribute(
- PositionIncrementsAttribute.class).isPositionIncrementsEnabled()) {
-
- this.positionIncrementsEnabled = true;
-
- }
-
+ if (positionIncrementsEnabled != null) {
+ this.positionIncrementsEnabled = positionIncrementsEnabled;
}
if (this.analyzer != null) {
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/BoostQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/BoostQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/BoostQueryNodeProcessor.java (working copy)
@@ -27,14 +27,14 @@
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
import org.apache.lucene.queryParser.core.util.StringUtils;
-import org.apache.lucene.queryParser.standard.config.BoostAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
/**
* This processor iterates the query node tree looking for every
- * {@link FieldableNode} that has the attribute {@link BoostAttribute} in its
+ * {@link FieldableNode} that has {@link ConfigurationKeys#BOOST} in its
* config. If there is, the boost is applied to that {@link FieldableNode}. <br/>
*
- * @see BoostAttribute
+ * @see ConfigurationKeys#BOOST
* @see QueryConfigHandler
* @see FieldableNode
*/
@@ -53,10 +53,12 @@
CharSequence field = fieldNode.getField();
FieldConfig fieldConfig = config.getFieldConfig(StringUtils.toString(field));
- if (fieldConfig != null && fieldConfig.hasAttribute(BoostAttribute.class)) {
- BoostAttribute boostAttr = fieldConfig.getAttribute(BoostAttribute.class);
+ if (fieldConfig != null) {
+ Float boost = fieldConfig.get(ConfigurationKeys.BOOST);
- return new BoostQueryNode(node, boostAttr.getBoost());
+ if (boost != null) {
+ return new BoostQueryNode(node, boost);
+ }
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/DefaultPhraseSlopQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/DefaultPhraseSlopQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/DefaultPhraseSlopQueryNodeProcessor.java (working copy)
@@ -25,19 +25,20 @@
import org.apache.lucene.queryParser.core.nodes.SlopQueryNode;
import org.apache.lucene.queryParser.core.nodes.TokenizedPhraseQueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
-import org.apache.lucene.queryParser.standard.config.DefaultPhraseSlopAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
import org.apache.lucene.queryParser.standard.nodes.MultiPhraseQueryNode;
/**
- * This processor verifies if the attribute {@link DefaultPhraseSlopAttribute}
+ * This processor verifies if {@link ConfigurationKeys#PHRASE_SLOP}
* is defined in the {@link QueryConfigHandler}. If it is, it looks for every
* {@link TokenizedPhraseQueryNode} and {@link MultiPhraseQueryNode} that does
* not have any {@link SlopQueryNode} applied to it and creates an
* {@link SlopQueryNode} and apply to it. The new {@link SlopQueryNode} has the
- * same slop value defined in the attribute. <br/>
+ * same slop value defined in the configuration. <br/>
*
* @see SlopQueryNode
- * @see DefaultPhraseSlopAttribute
+ * @see ConfigurationKeys#PHRASE_SLOP
*/
public class DefaultPhraseSlopQueryNodeProcessor extends QueryNodeProcessorImpl {
@@ -54,11 +55,11 @@
QueryConfigHandler queryConfig = getQueryConfigHandler();
if (queryConfig != null) {
+ Integer defaultPhraseSlop = queryConfig.get(ConfigurationKeys.PHRASE_SLOP);
+
+ if (defaultPhraseSlop != null) {
+ this.defaultPhraseSlop = defaultPhraseSlop;
- if (queryConfig.hasAttribute(DefaultPhraseSlopAttribute.class)) {
- this.defaultPhraseSlop = queryConfig.getAttribute(
- DefaultPhraseSlopAttribute.class).getDefaultPhraseSlop();
-
return super.process(queryTree);
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/FuzzyQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/FuzzyQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/FuzzyQueryNodeProcessor.java (working copy)
@@ -24,17 +24,20 @@
import org.apache.lucene.queryParser.core.nodes.FuzzyQueryNode;
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
-import org.apache.lucene.queryParser.standard.config.FuzzyAttribute;
+import org.apache.lucene.queryParser.standard.config.FuzzyConfig;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
import org.apache.lucene.search.FuzzyQuery;
/**
* This processor iterates the query node tree looking for every
* {@link FuzzyQueryNode}, when this kind of node is found, it checks on the
- * query configuration for {@link FuzzyAttribute}, gets the fuzzy prefix length
- * and default similarity from it and set to the fuzzy node. For more
- * information about fuzzy prefix length check: {@link FuzzyQuery}. <br/>
+ * query configuration for
+ * {@link ConfigurationKeys#FUZZY_CONFIG}, gets the
+ * fuzzy prefix length and default similarity from it and set to the fuzzy node.
+ * For more information about fuzzy prefix length check: {@link FuzzyQuery}. <br/>
*
- * @see FuzzyAttribute
+ * @see ConfigurationKeys#FUZZY_CONFIG
* @see FuzzyQuery
* @see FuzzyQueryNode
*/
@@ -54,18 +57,17 @@
FuzzyQueryNode fuzzyNode = (FuzzyQueryNode) node;
QueryConfigHandler config = getQueryConfigHandler();
- if (config != null && config.hasAttribute(FuzzyAttribute.class)) {
- FuzzyAttribute fuzzyAttr = config.getAttribute(FuzzyAttribute.class);
- fuzzyNode.setPrefixLength(fuzzyAttr.getPrefixLength());
+ FuzzyConfig fuzzyConfig = null;
+
+ if (config != null && (fuzzyConfig = config.get(ConfigurationKeys.FUZZY_CONFIG)) != null) {
+ fuzzyNode.setPrefixLength(fuzzyConfig.getPrefixLength());
if (fuzzyNode.getSimilarity() < 0) {
- fuzzyNode.setSimilarity(fuzzyAttr.getFuzzyMinSimilarity());
-
+ fuzzyNode.setSimilarity(fuzzyConfig.getMinSimilarity());
}
-
+
} else if (fuzzyNode.getSimilarity() < 0) {
- throw new IllegalArgumentException("No "
- + FuzzyAttribute.class.getName() + " set in the config");
+ throw new IllegalArgumentException("No FUZZY_CONFIG set in the config");
}
}
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/GroupQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/GroupQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/GroupQueryNodeProcessor.java (working copy)
@@ -31,8 +31,9 @@
import org.apache.lucene.queryParser.core.nodes.ModifierQueryNode.Modifier;
import org.apache.lucene.queryParser.core.parser.SyntaxParser;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessor;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.Operator;
import org.apache.lucene.queryParser.standard.nodes.BooleanModifierNode;
/**
@@ -64,14 +65,14 @@
}
public QueryNode process(QueryNode queryTree) throws QueryNodeException {
-
- if (!getQueryConfigHandler().hasAttribute(DefaultOperatorAttribute.class)) {
+ Operator defaultOperator = getQueryConfigHandler().get(ConfigurationKeys.DEFAULT_OPERATOR);
+
+ if (defaultOperator == null) {
throw new IllegalArgumentException(
- "DefaultOperatorAttribute should be set on the QueryConfigHandler");
+ "DEFAULT_OPERATOR should be set on the QueryConfigHandler");
}
- this.usingAnd = Operator.AND == getQueryConfigHandler()
- .getAttribute(DefaultOperatorAttribute.class).getOperator();
+ this.usingAnd = StandardQueryConfigHandler.Operator.AND == defaultOperator;
if (queryTree instanceof GroupQueryNode) {
queryTree = ((GroupQueryNode) queryTree).getChild();
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/LowercaseExpandedTermsQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/LowercaseExpandedTermsQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/LowercaseExpandedTermsQueryNodeProcessor.java (working copy)
@@ -27,19 +27,20 @@
import org.apache.lucene.queryParser.core.nodes.TextableQueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
import org.apache.lucene.queryParser.core.util.UnescapedCharSequence;
-import org.apache.lucene.queryParser.standard.config.LowercaseExpandedTermsAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
import org.apache.lucene.queryParser.standard.nodes.RegexpQueryNode;
import org.apache.lucene.queryParser.standard.nodes.WildcardQueryNode;
/**
- * This processor verifies if the attribute
- * {@link LowercaseExpandedTermsAttribute} is defined in the
+ * This processor verifies if
+ * {@link ConfigurationKeys#LOWERCASE_EXPANDED_TERMS} is defined in the
* {@link QueryConfigHandler}. If it is and the expanded terms should be
* lower-cased, it looks for every {@link WildcardQueryNode},
* {@link FuzzyQueryNode} and {@link ParametricQueryNode} and lower-case its
* term. <br/>
*
- * @see LowercaseExpandedTermsAttribute
+ * @see ConfigurationKeys#LOWERCASE_EXPANDED_TERMS
*/
public class LowercaseExpandedTermsQueryNodeProcessor extends
QueryNodeProcessorImpl {
@@ -50,17 +51,10 @@
@Override
public QueryNode process(QueryNode queryTree) throws QueryNodeException {
+ Boolean lowercaseExpandedTerms = getQueryConfigHandler().get(ConfigurationKeys.LOWERCASE_EXPANDED_TERMS);
- if (getQueryConfigHandler().hasAttribute(
- LowercaseExpandedTermsAttribute.class)) {
-
- if (getQueryConfigHandler().getAttribute(
- LowercaseExpandedTermsAttribute.class).isLowercaseExpandedTerms()) {
-
- return super.process(queryTree);
-
- }
-
+ if (lowercaseExpandedTerms != null && lowercaseExpandedTerms) {
+ return super.process(queryTree);
}
return queryTree;
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/MultiFieldQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/MultiFieldQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/MultiFieldQueryNodeProcessor.java (working copy)
@@ -27,7 +27,8 @@
import org.apache.lucene.queryParser.core.nodes.GroupQueryNode;
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
-import org.apache.lucene.queryParser.standard.config.MultiFieldAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
/**
* This processor is used to expand terms so the query looks for the same term
@@ -35,13 +36,13 @@
* <br/>
* This processor looks for every {@link FieldableNode} contained in the query
* node tree. If a {@link FieldableNode} is found, it checks if there is a
- * {@link MultiFieldAttribute} defined in the {@link QueryConfigHandler}. If
+ * {@link ConfigurationKeys#MULTI_FIELDS} defined in the {@link QueryConfigHandler}. If
* there is, the {@link FieldableNode} is cloned N times and the clones are
* added to a {@link BooleanQueryNode} together with the original node. N is
* defined by the number of fields that it will be expanded to. The
* {@link BooleanQueryNode} is returned. <br/>
*
- * @see MultiFieldAttribute
+ * @see ConfigurationKeys#MULTI_FIELDS
*/
public class MultiFieldQueryNodeProcessor extends QueryNodeProcessorImpl {
@@ -78,15 +79,13 @@
FieldableNode fieldNode = (FieldableNode) node;
if (fieldNode.getField() == null) {
+ CharSequence[] fields = getQueryConfigHandler().get(ConfigurationKeys.MULTI_FIELDS);
- if (!getQueryConfigHandler().hasAttribute(MultiFieldAttribute.class)) {
+ if (fields == null) {
throw new IllegalArgumentException(
- "MultiFieldAttribute should be set on the QueryConfigHandler");
+ "StandardQueryConfigHandler.ConfigurationKeys.MULTI_FIELDS should be set on the QueryConfigHandler");
}
- CharSequence[] fields = getQueryConfigHandler().getAttribute(
- MultiFieldAttribute.class).getFields();
-
if (fields != null && fields.length > 0) {
fieldNode.setField(fields[0]);
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/MultiTermRewriteMethodProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/MultiTermRewriteMethodProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/MultiTermRewriteMethodProcessor.java (working copy)
@@ -22,7 +22,7 @@
import org.apache.lucene.queryParser.core.nodes.ParametricRangeQueryNode;
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
-import org.apache.lucene.queryParser.standard.config.MultiTermRewriteMethodAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
import org.apache.lucene.queryParser.standard.nodes.RegexpQueryNode;
import org.apache.lucene.queryParser.standard.nodes.WildcardQueryNode;
import org.apache.lucene.search.MultiTermQuery;
@@ -35,6 +35,8 @@
*/
public class MultiTermRewriteMethodProcessor extends QueryNodeProcessorImpl {
+ public static final String TAG_ID = "MultiTermRewriteMethodConfiguration";
+
@Override
protected QueryNode postProcessNode(QueryNode node) {
@@ -42,22 +44,19 @@
// PrefixWildcardQueryNode
if (node instanceof WildcardQueryNode
|| node instanceof ParametricRangeQueryNode || node instanceof RegexpQueryNode) {
+
+ MultiTermQuery.RewriteMethod rewriteMethod = getQueryConfigHandler().get(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD);
- if (!getQueryConfigHandler().hasAttribute(
- MultiTermRewriteMethodAttribute.class)) {
- // This should not happen, this attribute is created in the
+ if (rewriteMethod == null) {
+ // This should not happen, this configuration is set in the
// StandardQueryConfigHandler
throw new IllegalArgumentException(
- "MultiTermRewriteMethodAttribute should be set on the QueryConfigHandler");
+ "StandardQueryConfigHandler.ConfigurationKeys.MULTI_TERM_REWRITE_METHOD should be set on the QueryConfigHandler");
}
- // read the attribute value and use a TAG to take the value to the Builder
- MultiTermQuery.RewriteMethod rewriteMethod = getQueryConfigHandler()
- .getAttribute(MultiTermRewriteMethodAttribute.class)
- .getMultiTermRewriteMethod();
+ // use a TAG to take the value to the Builder
+ node.setTag(MultiTermRewriteMethodProcessor.TAG_ID, rewriteMethod);
- node.setTag(MultiTermRewriteMethodAttribute.TAG_ID, rewriteMethod);
-
}
return node;
Index: contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/ParametricRangeQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/ParametricRangeQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/processors/ParametricRangeQueryNodeProcessor.java (working copy)
@@ -33,8 +33,8 @@
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.nodes.ParametricQueryNode.CompareOperator;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
-import org.apache.lucene.queryParser.standard.config.DateResolutionAttribute;
-import org.apache.lucene.queryParser.standard.config.LocaleAttribute;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
import org.apache.lucene.queryParser.standard.nodes.RangeQueryNode;
/**
@@ -45,16 +45,16 @@
* value, it will only create the {@link RangeQueryNode} using the non-parsed
* values. <br/>
* <br/>
- * If a {@link LocaleAttribute} is defined in the {@link QueryConfigHandler} it
+ * If a {@link ConfigurationKeys#LOCALE} is defined in the {@link QueryConfigHandler} it
* will be used to parse the date, otherwise {@link Locale#getDefault()} will be
* used. <br/>
* <br/>
- * If a {@link DateResolutionAttribute} is defined and the {@link Resolution} is
+ * If a {@link ConfigurationKeys#DATE_RESOLUTION} is defined and the {@link Resolution} is
* not <code>null</code> it will also be used to parse the date value. <br/>
* <br/>
*
- * @see DateResolutionAttribute
- * @see LocaleAttribute
+ * @see ConfigurationKeys#DATE_RESOLUTION
+ * @see ConfigurationKeys#LOCALE
* @see RangeQueryNode
* @see ParametricRangeQueryNode
*/
@@ -71,15 +71,13 @@
ParametricRangeQueryNode parametricRangeNode = (ParametricRangeQueryNode) node;
ParametricQueryNode upper = parametricRangeNode.getUpperBound();
ParametricQueryNode lower = parametricRangeNode.getLowerBound();
- Locale locale = Locale.getDefault();
+
DateTools.Resolution dateRes = null;
boolean inclusive = false;
+ Locale locale = getQueryConfigHandler().get(ConfigurationKeys.LOCALE);
- if (getQueryConfigHandler().hasAttribute(LocaleAttribute.class)) {
-
- locale = getQueryConfigHandler().getAttribute(LocaleAttribute.class)
- .getLocale();
-
+ if (locale == null) {
+ locale = Locale.getDefault();
}
CharSequence field = parametricRangeNode.getField();
@@ -93,14 +91,7 @@
.getFieldConfig(fieldStr);
if (fieldConfig != null) {
-
- if (fieldConfig.hasAttribute(DateResolutionAttribute.class)) {
-
- dateRes = fieldConfig.getAttribute(DateResolutionAttribute.class)
- .getDateResolution();
-
- }
-
+ dateRes = fieldConfig.get(ConfigurationKeys.DATE_RESOLUTION);
}
if (upper.getOperator() == CompareOperator.LE) {
Index: contrib/queryparser/src/java/overview.html
===================================================================
--- contrib/queryparser/src/java/overview.html (revision 1142535)
+++ contrib/queryparser/src/java/overview.html (working copy)
@@ -108,8 +108,7 @@
</dl>
<p>
-Furthermore, the query parser uses flexible configuration objects, which
-are based on AttributeSource/Attribute. It also uses message classes that
+Furthermore, the query parser uses flexible configuration objects. It also uses message classes that
allow to attach resource bundles. This makes it possible to translate
messages, which is an important feature of a query parser.
</p>
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/precedence/TestPrecedenceQueryParser.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/precedence/TestPrecedenceQueryParser.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/precedence/TestPrecedenceQueryParser.java (working copy)
@@ -38,7 +38,7 @@
import org.apache.lucene.queryParser.TestQueryParser;
import org.apache.lucene.queryParser.core.QueryNodeException;
import org.apache.lucene.queryParser.core.QueryNodeParseException;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
import org.apache.lucene.queryParser.standard.parser.ParseException;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.FuzzyQuery;
@@ -128,7 +128,7 @@
a = new MockAnalyzer(random, MockTokenizer.SIMPLE, true);
PrecedenceQueryParser qp = new PrecedenceQueryParser();
qp.setAnalyzer(a);
- qp.setDefaultOperator(Operator.OR);
+ qp.setDefaultOperator(StandardQueryConfigHandler.Operator.OR);
return qp;
}
@@ -174,7 +174,7 @@
a = new MockAnalyzer(random, MockTokenizer.SIMPLE, true);
PrecedenceQueryParser qp = new PrecedenceQueryParser();
qp.setAnalyzer(a);
- qp.setDefaultOperator(Operator.AND);
+ qp.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
return qp.parse(query, "field");
}
@@ -234,11 +234,11 @@
PrecedenceQueryParser qp = new PrecedenceQueryParser();
qp.setAnalyzer(new MockAnalyzer(random));
// make sure OR is the default:
- assertEquals(Operator.OR, qp.getDefaultOperator());
- qp.setDefaultOperator(Operator.AND);
- assertEquals(Operator.AND, qp.getDefaultOperator());
- qp.setDefaultOperator(Operator.OR);
- assertEquals(Operator.OR, qp.getDefaultOperator());
+ assertEquals(StandardQueryConfigHandler.Operator.OR, qp.getDefaultOperator());
+ qp.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
+ assertEquals(StandardQueryConfigHandler.Operator.AND, qp.getDefaultOperator());
+ qp.setDefaultOperator(StandardQueryConfigHandler.Operator.OR);
+ assertEquals(StandardQueryConfigHandler.Operator.OR, qp.getDefaultOperator());
assertQueryEquals("a OR !b", null, "a -b");
assertQueryEquals("a OR ! b", null, "a -b");
@@ -607,7 +607,7 @@
query2 = parser.parse("A (-B +C)", "field");
assertEquals(query1, query2);
- parser.setDefaultOperator(Operator.AND);
+ parser.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
query1 = parser.parse("A AND B OR C AND D", "field");
query2 = parser.parse("(A AND B) OR (C AND D)", "field");
assertEquals(query1, query2);
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/SpansQueryConfigHandler.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/SpansQueryConfigHandler.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/SpansQueryConfigHandler.java (working copy)
@@ -17,6 +17,7 @@
* limitations under the License.
*/
+import org.apache.lucene.queryParser.core.config.ConfigurationKey;
import org.apache.lucene.queryParser.core.config.FieldConfig;
import org.apache.lucene.queryParser.core.config.QueryConfigHandler;
@@ -27,9 +28,11 @@
* It does not return any configuration for a field in specific.
*/
public class SpansQueryConfigHandler extends QueryConfigHandler {
-
+
+ final public static ConfigurationKey<String> UNIQUE_FIELD = ConfigurationKey.newInstance();
+
public SpansQueryConfigHandler() {
- addAttribute(UniqueFieldAttribute.class);
+ // empty constructor
}
@Override
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/TestSpanQueryParser.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/TestSpanQueryParser.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/TestSpanQueryParser.java (working copy)
@@ -127,11 +127,10 @@
return getSpanQuery("", query);
}
- public SpanQuery getSpanQuery(CharSequence uniqueField, CharSequence query)
+ public SpanQuery getSpanQuery(String uniqueField, CharSequence query)
throws QueryNodeException {
- UniqueFieldAttribute uniqueFieldAtt = this.spanQueryConfigHandler
- .getAttribute(UniqueFieldAttribute.class);
- uniqueFieldAtt.setUniqueField(uniqueField);
+
+ this.spanQueryConfigHandler.set(SpansQueryConfigHandler.UNIQUE_FIELD, uniqueField);
QueryNode queryTree = this.queryParser.parse(query, "defaultField");
queryTree = this.spanProcessorPipeline.process(queryTree);
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/TestSpanQueryParserSimpleSample.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/TestSpanQueryParserSimpleSample.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/TestSpanQueryParserSimpleSample.java (working copy)
@@ -104,9 +104,7 @@
// create a config handler with a attribute used in
// UniqueFieldQueryNodeProcessor
QueryConfigHandler spanQueryConfigHandler = new SpansQueryConfigHandler();
- UniqueFieldAttribute uniqueFieldAtt = spanQueryConfigHandler
- .getAttribute(UniqueFieldAttribute.class);
- uniqueFieldAtt.setUniqueField("index");
+ spanQueryConfigHandler.set(SpansQueryConfigHandler.UNIQUE_FIELD, "index");
// set up the processor pipeline with the ConfigHandler
// and create the pipeline for this simple demo
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/UniqueFieldQueryNodeProcessor.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/UniqueFieldQueryNodeProcessor.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/spans/UniqueFieldQueryNodeProcessor.java (working copy)
@@ -57,14 +57,12 @@
"A config handler is expected by the processor UniqueFieldQueryNodeProcessor!");
}
- if (!queryConfig.hasAttribute(UniqueFieldAttribute.class)) {
+ if (!queryConfig.has(SpansQueryConfigHandler.UNIQUE_FIELD)) {
throw new IllegalArgumentException(
"UniqueFieldAttribute should be defined in the config handler!");
}
- CharSequence uniqueField = queryConfig.getAttribute(
- UniqueFieldAttribute.class).getUniqueField();
-
+ String uniqueField = queryConfig.get(SpansQueryConfigHandler.UNIQUE_FIELD);
fieldNode.setField(uniqueField);
}
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiAnalyzerQPHelper.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiAnalyzerQPHelper.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiAnalyzerQPHelper.java (working copy)
@@ -28,7 +28,8 @@
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
import org.apache.lucene.queryParser.core.QueryNodeException;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.Operator;
import org.apache.lucene.util.LuceneTestCase;
/**
@@ -102,7 +103,7 @@
qp.setDefaultPhraseSlop(0);
// non-default operator:
- qp.setDefaultOperator(Operator.AND);
+ qp.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
assertEquals("+(multi multi2) +foo", qp.parse("multi foo", "").toString());
}
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQPHelper.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQPHelper.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQPHelper.java (working copy)
@@ -28,7 +28,8 @@
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.queryParser.core.QueryNodeException;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.Operator;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
@@ -133,7 +134,7 @@
assertEquals("(b:one t:one) f:two", q.toString());
// AND mode:
- mfqp.setDefaultOperator(Operator.AND);
+ mfqp.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
q = mfqp.parse("one two", null);
assertEquals("+(b:one t:one) +(b:two t:two)", q.toString());
q = mfqp.parse("\"aa bb cc\" \"dd ee\"", null);
@@ -329,7 +330,7 @@
mfqp.setMultiFields(new String[] { "body" });
mfqp.setAnalyzer(analyzer);
- mfqp.setDefaultOperator(Operator.AND);
+ mfqp.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
Query q = mfqp.parse("the footest", null);
IndexSearcher is = new IndexSearcher(ramDir, true);
ScoreDoc[] hits = is.search(q, null, 1000).scoreDocs;
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java (working copy)
@@ -19,7 +19,6 @@
import java.io.IOException;
import java.io.Reader;
-import java.text.Collator;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
@@ -52,7 +51,7 @@
import org.apache.lucene.queryParser.core.nodes.QueryNode;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl;
import org.apache.lucene.queryParser.core.processors.QueryNodeProcessorPipeline;
-import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator;
+import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
import org.apache.lucene.queryParser.standard.nodes.WildcardQueryNode;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
@@ -195,7 +194,7 @@
StandardQueryParser qp = new StandardQueryParser();
qp.setAnalyzer(a);
- qp.setDefaultOperator(Operator.OR);
+ qp.setDefaultOperator(StandardQueryConfigHandler.Operator.OR);
return qp;
@@ -284,7 +283,7 @@
a = new MockAnalyzer(random, MockTokenizer.SIMPLE, true);
StandardQueryParser qp = new StandardQueryParser();
qp.setAnalyzer(a);
- qp.setDefaultOperator(Operator.AND);
+ qp.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
return qp.parse(query, "field");
Index: contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/config/TestAttributes.java
===================================================================
--- contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/config/TestAttributes.java (revision 1142535)
+++ contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/config/TestAttributes.java (working copy)
@@ -1,65 +0,0 @@
-package org.apache.lucene.queryParser.standard.config;
-
-/**
- * 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 org.apache.lucene.util._TestUtil;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.search.FuzzyQuery;
-import org.apache.lucene.search.MultiTermQuery;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Locale;
-
-public class TestAttributes extends LuceneTestCase {
-
- // this checks using reflection API if the defaults are correct
- public void testAttributes() {
- _TestUtil.assertAttributeReflection(new AllowLeadingWildcardAttributeImpl(),
- Collections.singletonMap(AllowLeadingWildcardAttribute.class.getName()+"#allowLeadingWildcard", false));
- _TestUtil.assertAttributeReflection(new AnalyzerAttributeImpl(),
- Collections.singletonMap(AnalyzerAttribute.class.getName()+"#analyzer", null));
- _TestUtil.assertAttributeReflection(new BoostAttributeImpl(),
- Collections.singletonMap(BoostAttribute.class.getName()+"#boost", 1.0f));
- _TestUtil.assertAttributeReflection(new DateResolutionAttributeImpl(),
- Collections.singletonMap(DateResolutionAttribute.class.getName()+"#dateResolution", null));
- _TestUtil.assertAttributeReflection(new DefaultOperatorAttributeImpl(),
- Collections.singletonMap(DefaultOperatorAttribute.class.getName()+"#operator", DefaultOperatorAttribute.Operator.OR));
- _TestUtil.assertAttributeReflection(new DefaultPhraseSlopAttributeImpl(),
- Collections.singletonMap(DefaultPhraseSlopAttribute.class.getName()+"#defaultPhraseSlop", 0));
- _TestUtil.assertAttributeReflection(new FieldBoostMapAttributeImpl(),
- Collections.singletonMap(FieldBoostMapAttribute.class.getName()+"#boosts", Collections.emptyMap()));
- _TestUtil.assertAttributeReflection(new FieldDateResolutionMapAttributeImpl(),
- Collections.singletonMap(FieldDateResolutionMapAttribute.class.getName()+"#dateRes", Collections.emptyMap()));
- _TestUtil.assertAttributeReflection(new FuzzyAttributeImpl(), new HashMap<String,Object>() {{
- put(FuzzyAttribute.class.getName()+"#prefixLength", FuzzyQuery.defaultPrefixLength);
- put(FuzzyAttribute.class.getName()+"#minSimilarity", FuzzyQuery.defaultMinSimilarity);
- }});
- _TestUtil.assertAttributeReflection(new LocaleAttributeImpl(),
- Collections.singletonMap(LocaleAttribute.class.getName()+"#locale", Locale.getDefault()));
- _TestUtil.assertAttributeReflection(new LowercaseExpandedTermsAttributeImpl(),
- Collections.singletonMap(LowercaseExpandedTermsAttribute.class.getName()+"#lowercaseExpandedTerms", true));
- _TestUtil.assertAttributeReflection(new MultiFieldAttributeImpl(),
- Collections.singletonMap(MultiFieldAttribute.class.getName()+"#fields", null));
- _TestUtil.assertAttributeReflection(new MultiTermRewriteMethodAttributeImpl(),
- Collections.singletonMap(MultiTermRewriteMethodAttribute.class.getName()+"#multiTermRewriteMethod", MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT));
- _TestUtil.assertAttributeReflection(new PositionIncrementsAttributeImpl(),
- Collections.singletonMap(PositionIncrementsAttribute.class.getName()+"#positionIncrementsEnabled", false));
- }
-
-}