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>

Reply via email to