I created a document that has a string field and a case insensitive string
field using my string_ci type, both have the same value sent at document
creation time: "miXCAse or LowER".
I attach two debug query results. One against the string type and one against
mine. The query is only different by changing the query field.
Against the string there are results. Against mine there are none. Looking at
the debug info, querying my type does lower case the query value it seems.
Does this mean the analyzer to the index is failing? Would the fact that Luke
shows the value as case preserved in both the string field and the string_ci
field support this?
-----Original Message-----
From: Harsch, Timothy J. (ARC-TI)[PEROT SYSTEMS]
[mailto:timothy.j.har...@nasa.gov]
Sent: Wednesday, January 13, 2010 11:35 AM
To: solr-user@lucene.apache.org
Subject: RE: case-insensitive string type
The value in the srcANYSTRStrCI field is "miXCAse or LowER" according to Luke.
-----Original Message-----
From: Harsch, Timothy J. (ARC-TI)[PEROT SYSTEMS]
[mailto:timothy.j.har...@nasa.gov]
Sent: Wednesday, January 13, 2010 11:31 AM
To: solr-user@lucene.apache.org
Subject: RE: case-insensitive string type
>From the query
http://localhost:8080/solr/select?q=idxPartition%3ASOMEPART%20AND%20srcANYSTRStrCI:%22mixcase%20or%20lower%22&debugQuery=on
Debug info attached
-----Original Message-----
From: Harsch, Timothy J. (ARC-TI)[PEROT SYSTEMS]
[mailto:timothy.j.har...@nasa.gov]
Sent: Wednesday, January 13, 2010 11:28 AM
To: solr-user@lucene.apache.org
Subject: RE: case-insensitive string type
I considered that, but I'm also having the issue that I can't get an exact
match as case insensitive either.
-----Original Message-----
From: Rob Casson [mailto:rob.cas...@gmail.com]
Sent: Wednesday, January 13, 2010 11:26 AM
To: solr-user@lucene.apache.org
Subject: Re: case-insensitive string type
from http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters
"On wildcard and fuzzy searches, no text analysis is performed on the
search word."
i'd just lowercase the wildcard-ed search term in your client code, before you
send it to solr.
hth,
rob
On Wed, Jan 13, 2010 at 2:18 PM, Harsch, Timothy J. (ARC-TI)[PEROT SYSTEMS]
<timothy.j.har...@nasa.gov> wrote:
> Hi I have a field:
>
> <field name="srcANYSTRStrCI" type="string_ci" indexed="true"
> stored="true" multiValued="true" />
>
> With type definition:
> <!-- A Case insensitive version of string type -->
> <fieldType name="string_ci" class="solr.StrField"
> sortMissingLast="true" omitNorms="true">
> <analyzer type="index">
> <tokenizer
> class="solr.KeywordTokenizerFactory"/>
> <filter
> class="solr.LowerCaseFilterFactory" />
> </analyzer>
> <analyzer type="query">
> <tokenizer
> class="solr.KeywordTokenizerFactory"/>
> <filter
> class="solr.LowerCaseFilterFactory" />
> </analyzer>
> </fieldType>
>
> When searching that field I can't get a case-insensitive match. It
> works as if it is a regular string, for instance I can do a prefix
> query and so long as the prefix matches the case of the value it
> works, but if I change the prefix case it doesn't
>
> Essentially I am trying to get case-insensitive matching that supports wild
> cards...
>
> Tim Harsch
> Sr. Software Engineer
> Dell Perot Systems
> (650) 604-0374
>
>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">32</int><lst name="params"><str name="debugQuery">on</str><str name="q">srcANYSTRStr:("miXCAse or LowER")</str></lst></lst><result name="response" numFound="1" start="0"><doc><str name="idxKey">TimsUniqueKey</str><arr name="srcANYSTRStr"><str>miXCAse or LowER</str></arr><arr name="srcANYSTRStrCI"><str>miXCAse or LowER</str></arr></doc></result><lst name="debug"><str name="rawquerystring">srcANYSTRStr:("miXCAse or LowER")</str><str name="querystring">srcANYSTRStr:("miXCAse or LowER")</str><str name="parsedquery">srcANYSTRStr:miXCAse or LowER</str><str name="parsedquery_toString">srcANYSTRStr:miXCAse or LowER</str><lst name="explain"><str name="TimsUniqueKey">
9.250228 = (MATCH) fieldWeight(srcANYSTRStr:miXCAse or LowER in 0), product of:
1.0 = tf(termFreq(srcANYSTRStr:miXCAse or LowER)=1)
9.250228 = idf(docFreq=1, maxDocs=7657)
1.0 = fieldNorm(field=srcANYSTRStr, doc=0)
</str></lst><str name="QParser">LuceneQParser</str><lst name="timing"><double name="time">16.0</double><lst name="prepare"><double name="time">0.0</double><lst name="org.apache.solr.handler.component.QueryComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.FacetComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.MoreLikeThisComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.HighlightComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.StatsComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.DebugComponent"><double name="time">0.0</double></lst></lst><lst name="process"><double name="time">16.0</double><lst name="org.apache.solr.handler.component.QueryComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.FacetComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.MoreLikeThisComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.HighlightComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.StatsComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.DebugComponent"><double name="time">16.0</double></lst></lst></lst></lst>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">0</int><lst name="params"><str name="debugQuery">on</str><str name="q">srcANYSTRStrCI:("miXCAse or LowER")</str></lst></lst><result name="response" numFound="0" start="0"/><lst name="debug"><str name="rawquerystring">srcANYSTRStrCI:("miXCAse or LowER")</str><str name="querystring">srcANYSTRStrCI:("miXCAse or LowER")</str><str name="parsedquery">srcANYSTRStrCI:mixcase or lower</str><str name="parsedquery_toString">srcANYSTRStrCI:mixcase or lower</str><lst name="explain"/><str name="QParser">LuceneQParser</str><lst name="timing"><double name="time">0.0</double><lst name="prepare"><double name="time">0.0</double><lst name="org.apache.solr.handler.component.QueryComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.FacetComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.MoreLikeThisComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.HighlightComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.StatsComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.DebugComponent"><double name="time">0.0</double></lst></lst><lst name="process"><double name="time">0.0</double><lst name="org.apache.solr.handler.component.QueryComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.FacetComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.MoreLikeThisComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.HighlightComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.StatsComponent"><double name="time">0.0</double></lst><lst name="org.apache.solr.handler.component.DebugComponent"><double name="time">0.0</double></lst></lst></lst></lst>
</response>