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

Reply via email to