[
https://issues.apache.org/jira/browse/SOLR-1321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758868#action_12758868
]
Ravi Kiran Bhaskar commented on SOLR-1321:
------------------------------------------
While using ReversedWildcardFilterFactory with KeywordTokenizerFactory I get
the following error for the fieldType
<fieldType name="keywordText" class="solr.TextField" sortMissingLast="true"
omitNorms="true" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
ERROR
--------
HTTP Status 500 -
org.apache.solr.analysis.WhitespaceTokenizerFactory.create(Ljava/io/Reader;)Lorg/apache/lucene/analysis/Tokenizer;
java.lang.AbstractMethodError:
org.apache.solr.analysis.WhitespaceTokenizerFactory.create(Ljava/io/Reader;)Lorg/apache/lucene/analysis/Tokenizer;
at org.apache.solr.analysis.TokenizerChain.getStream(TokenizerChain.java:69)
at
org.apache.solr.analysis.SolrAnalyzer.reusableTokenStream(SolrAnalyzer.java:74)
at
org.apache.solr.schema.IndexSchema$SolrIndexAnalyzer.reusableTokenStream(IndexSchema.java:364)
at
org.apache.lucene.queryParser.QueryParser.getFieldQuery(QueryParser.java:543)
at
org.apache.solr.search.SolrQueryParser.getFieldQuery(SolrQueryParser.java:153)
at
org.apache.solr.util.SolrPluginUtils$DisjunctionMaxQueryParser.getFieldQuery(SolrPluginUtils.java:807)
at
org.apache.solr.util.SolrPluginUtils$DisjunctionMaxQueryParser.getFieldQuery(SolrPluginUtils.java:794)
at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1425) at
org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1313) at
org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1241) at
org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1230)
at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:176) at
org.apache.solr.search.DisMaxQParser.getUserQuery(DisMaxQParser.java:195) at
org.apache.solr.search.DisMaxQParser.addMainQuery(DisMaxQParser.java:158) at
org.apache.solr.search.DisMaxQParser.parse(DisMaxQParser.java:74) at
org.apache.solr.search.QParser.getQuery(QParser.java:131) at
org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:89)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:174)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1313) at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:297)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
> Support for efficient leading wildcards search
> ----------------------------------------------
>
> Key: SOLR-1321
> URL: https://issues.apache.org/jira/browse/SOLR-1321
> Project: Solr
> Issue Type: Improvement
> Components: Analysis
> Affects Versions: 1.4
> Reporter: Andrzej Bialecki
> Assignee: Grant Ingersoll
> Fix For: 1.4
>
> Attachments: SOLR-1321.patch, SOLR-1321.patch, SOLR-1321.patch,
> wildcards-2.patch, wildcards-3.patch, wildcards.patch
>
>
> This patch is an implementation of the "reversed tokens" strategy for
> efficient leading wildcards queries.
> ReversedWildcardsTokenFilter reverses tokens and returns both the original
> token (optional) and the reversed token (with positionIncrement == 0).
> Reversed tokens are prepended with a marker character to avoid collisions
> between legitimate tokens and the reversed tokens - e.g. "DNA" would become
> "and", thus colliding with the regular term "and", but with the marker
> character it becomes "\u0001and".
> This TokenFilter can be added to the analyzer chain that it used during
> indexing.
> SolrQueryParser has been modified to detect the presence of such fields in
> the current schema, and treat them in a special way. First, SolrQueryParser
> examines the schema and collects a map of fields where these reversed tokens
> are indexed. If there is at least one such field, it also sets
> QueryParser.setAllowLeadingWildcards(true). When building a wildcard query
> (in getWildcardQuery) the term text may be optionally reversed to put
> wildcards further along the term text. This happens when the field uses the
> reversing filter during indexing (as detected above), AND if the wildcard
> characters are either at 0-th or 1-st position in the term. Otherwise the
> term text is processed as before, i.e. turned into a regular wildcard query.
> Unit tests are provided to test the TokenFilter and the query parsing.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.