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 {


Reply via email to