You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by "Jonas Salk (JIRA)" <ji...@apache.org> on 2009/04/18 22:18:14 UTC

[jira] Commented: (SOLR-218) Support for Lucene QueryParser properties via solrconfig.xml file

    [ https://issues.apache.org/jira/browse/SOLR-218?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12700531#action_12700531 ] 

Jonas Salk commented on SOLR-218:
---------------------------------

Not an expert at SOLR, currently using the default configurations which are shipped with it.   Taking suggestions above to update SolrQueryParser to allow for leading wildcard as allowed by Lucene, i modified the following 2 methods:

public SolrQueryParser(IndexSchema schema, String defaultField) {
     ... 
    // added 
    setAllowLeadingWildcard(true); 
    setLowercaseExpandedTerms(true);
    ... 
  }
 ...
  public SolrQueryParser(QParser parser, String defaultField, Analyzer analyzer) {
    ... 
    setAllowLeadingWildcard(true); 
    setLowercaseExpandedTerms(true);
    ... 
  }

everything compiled and 'ant' built a distro.   However, still throws an exception on a query request:

Test query:  "http://localhost:8983/solr/select/?indent=on&q=CommentText:Hello"

Finds two documents.   

However, wildcard query:  "http://localhost:8983/solr/select/?indent=on&q=CommentText:*ello"

throws this exception:
org.apache.lucene.queryParser.ParseException: Cannot parse 'CommentText:*ello': '*' or '?' not allowed as first character in WildcardQuery

Any suggestions on how i can prevent this exception and get this to work?

Regards,
Jonas

> Support for Lucene QueryParser properties via solrconfig.xml file
> -----------------------------------------------------------------
>
>                 Key: SOLR-218
>                 URL: https://issues.apache.org/jira/browse/SOLR-218
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>    Affects Versions: 1.1.0
>            Reporter: Michael Pelz-Sherman
>             Fix For: 1.5
>
>
> The SolrQueryParser class, which extends Lucene's QueryParser class, does not provide any way of setting the various QueryParser properties via the solr config file (solrconfig.xml). These properties include:
> allowLeadingWildcard (Set to true to allow * and ? as the first character of a PrefixQuery and WildcardQuery)
> dateResolution: Sets the default date resolution used by RangeQueries for fields for which no specific date resolutions has been set.
> defaultOperator: Sets the boolean operator of the QueryParser.
> fuzzyMinSim: Set the minimum similarity for fuzzy queries.
> locale: Set locale used by date range parsing.
> lowercaseExpandedTerms: Whether terms of wildcard, prefix, fuzzy and range queries are to be automatically lower-cased or not.
> phraseSlop: Sets the default slop for phrases.
> useOldRangeQuery: By default QueryParser uses new ConstantScoreRangeQuery in preference to RangeQuery for range queries.
> This can be achieved by calling the setter methods for these properties in the SolrQueryParser constructor,
>   public SolrQueryParser(IndexSchema schema, String defaultField) {
>     super(defaultField == null ? schema.getDefaultSearchFieldName() : defaultField, schema.getQueryAnalyzer());
>     this.schema = schema;
>     setAllowLeadingWildcard(SolrConfig.config.getBool("query/setAllowLeadingWildcard"));
>     setLowercaseExpandedTerms(SolrConfig.config.getBool("query/lowerCaseExpandedTerms"));
>   }
> In addition, solr should not modify these values from the defaults provided by Lucene, as it currently does by calling setLowercaseExpandedTerms(false) in this method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.