Author: ehatcher
Date: Mon Jul 24 06:00:46 2006
New Revision: 425033
URL: http://svn.apache.org/viewvc?rev=425033&view=rev
Log:
Allow the query parser default operator to be configurable via schema.xml
Modified:
incubator/solr/trunk/CHANGES.txt
incubator/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java
incubator/solr/trunk/src/java/org/apache/solr/search/SolrQueryParser.java
Modified: incubator/solr/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/incubator/solr/trunk/CHANGES.txt?rev=425033&r1=425032&r2=425033&view=diff
==============================================================================
--- incubator/solr/trunk/CHANGES.txt (original)
+++ incubator/solr/trunk/CHANGES.txt Mon Jul 24 06:00:46 2006
@@ -35,6 +35,9 @@
(yonik, SOLR-31)
19. Make web admin pages return UTF-8, change Content-type declaration to
include a
space between the mime-type and charset (Philip Jacob, SOLR-35)
+20. Made query parser default operator configurable via schema.xml:
+ <solrQueryParser defaultOperator="AND|OR"/>
+ The default operator remains "OR".
Changes in runtime behavior
1. classes reorganized into different packages, package names changed to
Apache
Modified: incubator/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java
URL:
http://svn.apache.org/viewvc/incubator/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java?rev=425033&r1=425032&r2=425033&view=diff
==============================================================================
--- incubator/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java
(original)
+++ incubator/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java Mon
Jul 24 06:00:46 2006
@@ -140,12 +140,18 @@
public Analyzer getQueryAnalyzer() { return queryAnalyzer; }
private String defaultSearchFieldName=null;
+ private String queryParserDefaultOperator = "OR";
/** Name of the default search field specified in the schema file */
public String getDefaultSearchFieldName() {
return defaultSearchFieldName;
}
+ /** default operator ("AND" or "OR") for QueryParser */
+ public String getQueryParserDefaultOperator() {
+ return queryParserDefaultOperator;
+ }
+
private SchemaField uniqueKeyField;
/**
@@ -364,6 +370,14 @@
// throw exception if specified, but not found or not indexed
if (defaultSearchFieldName!=null)
getIndexedField(defaultSearchFieldName);
log.info("default search field is "+defaultSearchFieldName);
+ }
+
+ node = (Node) xpath.evaluate("/schema/solrQueryParser/@defaultOperator",
document, XPathConstants.NODE);
+ if (node==null) {
+ log.fine("using default query parser operator (OR)");
+ } else {
+ queryParserDefaultOperator=node.getNodeValue().trim();
+ log.info("query parser default operator is "+queryParserDefaultOperator);
}
node = (Node) xpath.evaluate("/schema/uniqueKey/text()", document,
XPathConstants.NODE);
Modified:
incubator/solr/trunk/src/java/org/apache/solr/search/SolrQueryParser.java
URL:
http://svn.apache.org/viewvc/incubator/solr/trunk/src/java/org/apache/solr/search/SolrQueryParser.java?rev=425033&r1=425032&r2=425033&view=diff
==============================================================================
--- incubator/solr/trunk/src/java/org/apache/solr/search/SolrQueryParser.java
(original)
+++ incubator/solr/trunk/src/java/org/apache/solr/search/SolrQueryParser.java
Mon Jul 24 06:00:46 2006
@@ -37,6 +37,7 @@
super(defaultField == null ? schema.getDefaultSearchFieldName() :
defaultField, schema.getQueryAnalyzer());
this.schema = schema;
setLowercaseExpandedTerms(false);
+ setDefaultOperator("AND".equals(schema.getQueryParserDefaultOperator()) ?
QueryParser.Operator.AND : QueryParser.Operator.OR);
}
protected Query getFieldQuery(String field, String queryText) throws
ParseException {