You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by revas <re...@gmail.com> on 2009/11/25 12:43:27 UTC
Help on this parsed query
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
Re: Help on this parsed query
Posted by Erick Erickson <er...@gmail.com>.
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 <re...@gmail.com> 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
>