Help on this parsed query

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Help on this parsed query

revas
I have the text analyzer defined as follows


<fieldType name="text" 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.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />

<filter class="solr.LowerCaseFilterFactory"/>

<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>

<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.StopFilterFactory" ignoreCase="true"
words="stopwords.txt"/>

<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="0" catenateNumbers="0"
catenateAll="0" splitOnCaseChange="1" preserveOriginal="1"/>

<filter class="solr.LowerCaseFilterFactory"/>

<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>

<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>

</analyzer>

</fieldType>



when i search on this field  name simple of the above field type , the term
peRsonal

*I expect it to search as   simple:personal   simple :pe simple:rsonal*



instead the parsed query string says

<str name="*rawquerystring*">*simple:peRsonal*</str>
 * * <str name="*querystring*">*simple:peRsonal*</str>
 * * <str name="*parsedquery*">*MultiPhraseQuery(simple:"(person pe)
rsonal")*</str>
 * * <str name="*parsedquery_toString*">*simple:"(person pe) rsonal"*</str>


what is this multiphrase query ,why is this a phrase query istead of simple
query?


Regards
Revas
Reply | Threaded
Open this post in threaded view
|

Re: Help on this parsed query

Erick Erickson
I think because if it wasn't a phrase query you'd be matching on
the broken up parts of the word *wherever* they were in your field.
e.g. "pe" and "rsonal" could be separated by any number of other
tokens and you'd get a match.....

HTH
Erick

P.S. I was a bit confused by your asterisks, it took me a while to figure
out that you'd added them by hand for emphasis and you weren't sending
wildcards through......

On Wed, Nov 25, 2009 at 6:43 AM, revas <[hidden email]> wrote:

> I have the text analyzer defined as follows
>
>
> <fieldType name="text" 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.WordDelimiterFilterFactory" generateWordParts="1"
> generateNumberParts="1" catenateWords="1" catenateNumbers="1"
> catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
>
> <filter class="solr.LowerCaseFilterFactory"/>
>
> <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
>
> <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.StopFilterFactory" ignoreCase="true"
> words="stopwords.txt"/>
>
> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
> generateNumberParts="1" catenateWords="0" catenateNumbers="0"
> catenateAll="0" splitOnCaseChange="1" preserveOriginal="1"/>
>
> <filter class="solr.LowerCaseFilterFactory"/>
>
> <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
>
> </analyzer>
>
> </fieldType>
>
>
>
> when i search on this field  name simple of the above field type , the term
> peRsonal
>
> *I expect it to search as   simple:personal   simple :pe simple:rsonal*
>
>
>
> instead the parsed query string says
>
> <str name="*rawquerystring*">*simple:peRsonal*</str>
>  * * <str name="*querystring*">*simple:peRsonal*</str>
>  * * <str name="*parsedquery*">*MultiPhraseQuery(simple:"(person pe)
> rsonal")*</str>
>  * * <str name="*parsedquery_toString*">*simple:"(person pe) rsonal"*</str>
>
>
> what is this multiphrase query ,why is this a phrase query istead of simple
> query?
>
>
> Regards
> Revas
>