Code? I'm not sure what you're referring to. These changes are in schema.xml
and solrconfig.xml.
In your query, you need to change:
SKU:soft(*^1.0
to
SKU:soft\(*^1.0
-- Jack Krupansky
-----Original Message-----
From: Prachi Phatak
Sent: Thursday, May 17, 2012 3:25 PM
To: solr-user@lucene.apache.org ; Prachi Phatak
Subject: RE: org.apache.solr.common.SolrException:
org.apache.lucene.queryParser.ParseException: Cannot parse
Can I do this in the configuration or I have to change my code.
-----Original Message-----
From: Jack Krupansky [mailto:j...@basetechnology.com]
Sent: Thursday, May 17, 2012 2:23 PM
To: solr-user@lucene.apache.org; Prachi Phatak
Subject: Re: org.apache.solr.common.SolrException:
org.apache.lucene.queryParser.ParseException: Cannot parse
Okay, first, now that we can see your data, it looks to me like you should
keep it in two fields: 1) a "string" field for exact match, faceting, and
precise wildcarding, and 2) copy to a "text" field for searching by keyword.
For the latter, use a field type/analyzer comparable to "text_en_splitting".
Any time you have a query term with anything other than a letters, digits,
hyphens, and underscores, you should enclose it in quotes (double quote).
For example: "Soft(drink)"
So the query parsing exception is really just twlling you to enclose your
term in quotes.
But if your terms are in a "text" field, those special characters will be
deleted and treated as spaces anyway, so that "Soft(drink)" would be
equivalent to "soft drink" (or even "Soft-Drink".)
But if you also store your product category as a "string" field, you would
have to use either the full category name in quotes, or use wildcards, such
as "Women's Wear" or Women*.
You can also escape non-letter character, such as: Women\'s\ Wear - note the
escape of the space between words, needed for string fields, but not in text
fields.
-- Jack Krupansky
-----Original Message-----
From: Prachi Phatak
Sent: Thursday, May 17, 2012 2:52 PM
To: solr-user@lucene.apache.org
Subject: org.apache.solr.common.SolrException:
org.apache.lucene.queryParser.ParseException: Cannot parse
My configuration
<fieldType name="textgen" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1"
maxGramSize="15" side="front"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1"
maxGramSize="15" side="front"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory"
preserveOriginal="1" generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0"
splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
Data:
Coke Product Softdrink
Coke Product Softdrink
Coke Product Softdrink
Coke() Product Softdrink
Pepsi Product Softdrink
Pepsi Product Softdrink
Other Product Soft(drink)
Domestic-Beer Beer-34333
Domestic-Beer Beer-34333
Domestic-Beer Beer
Domestic Beer Beer
Import Beer+9 Beer
Import Beer Beer
Import Beer Beer
T-Shirt Shirt
T-Shirt Shirt
T-Shirt Shirt
T-Shirt Shirt-34333
T-Shirt Shirt
Blouse Women's-Wear
Blouse Women's-Wear
Skirt%3 Women's Wear
Skirt Women's Wear
Dress Formal Wear
Whenever I search for Soft(, it gives me the following error and if
try to search 34333, it gives no results
SEVERE: org.apache.solr.common.SolrException:
org.apache.lucene.queryParser.ParseException: Cannot parse
'+DIMENSION:Product^1.0 +( (SKU:soft(*^1.0 DIM_ATTR_ONE:soft(*^1.0
DIM_ATTR_ Was expecting one of:
<AND> ...
<OR> ...
<NOT> ...
"+" ...
"-" ...
"(" ...
")" ...
"*" ...
"^" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
"[" ...
"{" ...
<NUMBER> ...
at
org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:105)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:173)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1368)
at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.ja
va:582) Caused by: org.apache.lucene.queryParser.ParseException:
Cannot parse
'+DIMENSION:Product^1.0 +( (SKU:soft(*^1.0 DIM_ATTR_ONE:soft(*^1.0
DIM_ATTR_TWO:soft(*^1.0))': Encountered "<EO