So do you mean I should change it " class="solr.TextField" to " class="solr.StrField"?
-----Original Message----- From: Jack Krupansky [mailto:j...@basetechnology.com] Sent: Thursday, May 17, 2012 3:00 PM To: solr-user@lucene.apache.org Subject: Re: org.apache.solr.common.SolrException: org.apache.lucene.queryParser.ParseException: Cannot parse Sorry, my suggestion for the escaped left parenthesis is if you change SKU to be a string field. And then have SKU_text as a copy of that field (add a copyField to your schema.xml for SKU to SKU_text) but with some "text" type - then you could simply say SKU_text:soft . -- Jack Krupansky -----Original Message----- From: Jack Krupansky Sent: Thursday, May 17, 2012 3:50 PM To: solr-user@lucene.apache.org Subject: Re: org.apache.solr.common.SolrException: org.apache.lucene.queryParser.ParseException: Cannot parse 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