Or put the term in quotes.
-- Jack Krupansky
-----Original Message-----
From: Erick Erickson
Sent: Thursday, January 17, 2013 6:59 PM
To: solr-user@lucene.apache.org
Subject: Re: searching for q terms that start with a dash/hyphen being
interpreted as prohibited clauses
I think all you need to do is escape the hyphen, or have you tried that
already?
Best
Erick
On Thu, Jan 17, 2013 at 1:38 PM, geeky2 <gee...@hotmail.com> wrote:
hello
environment: solr 3.5
problem statement:
i have a requirement to search for part numbers that start with a dash /
hyphen.
example q= term: *-0004A-0436*
example query:
http://some_url:some_port/some_core/select?facet=false&sort=score+desc%2C+rankNo+asc%2C+partCnt+desc&start=0&q=*-0004A-0436*+itemType%3A1&wt=xml&qt=itemModelNoProductTypeBrandSearch&rows=4
what is happening: query is returning a huge results set. in reality
there
is one (1) and only one record in the database with this part number.
i believe this is happening because the dash is being interpreted by the
query parser as a prohibited clause and the effective result is, "give me
everything that does NOT have this part number".
how is this handled so that the search is conducted for the actual part:
-0004A-0436
thx
mark
more information:
request handler in solrconfig.xml
<requestHandler name="itemModelNoProductTypeBrandSearch"
class="solr.SearchHandler" default="false">
<lst name="defaults">
<str name="defType">edismax</str>
<str name="echoParams">all</str>
<int name="rows">10</int>
<str name="qf">itemModelNoExactMatchStr^30 itemModelNo^.9
divProductTypeDesc^.8 plsBrandDesc^.5</str>
<str name="q.alt">*:*</str>
<str name="sort">score desc, rankNo desc, partCnt desc</str>
<str name="facet">true</str>
<str name="facet.field">itemModelDescFacet</str>
<str name="facet.field">plsBrandDescFacet</str>
<str name="facet.field">divProductTypeIdFacet</str>
</lst>
<lst name="appends">
</lst>
<lst name="invariants">
</lst>
</requestHandler>
field information from schema.xml (if helpful)
<field name="itemModelNoExactMatchStr" type="text_general_trim"
indexed="true" stored="true"/>
<field name="itemModelNo" type="text_en_splitting" indexed="true"
stored="true" omitNorms="true"/>
<field name="divProductTypeDesc" type="text_general_edge_ngram"
indexed="true" stored="true" multiValued="true"/>
<field name="plsBrandDesc" type="text_general_edge_ngram" indexed="true"
stored="true" multiValued="true"/>
<fieldType name="text_general_trim" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.TrimFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_en_splitting" 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.PatternReplaceFilterFactory" pattern="\."
replacement="" replace="all"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3"
maxGramSize="15" side="front"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="1" catenateAll="1" splitOnCaseChange="1"
preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory"
protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<fieldType name="text_general_edge_ngram" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms_SHC.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3"
maxGramSize="15" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
--
View this message in context:
http://lucene.472066.n3.nabble.com/searching-for-q-terms-that-start-with-a-dash-hyphen-being-interpreted-as-prohibited-clauses-tp4034310.html
Sent from the Solr - User mailing list archive at Nabble.com.