This is a classic issue where there's confusion between
the query parser and field analysis.

Early in the process the query parser has to take the input
and break it up. that's how, for instance, a query like
text:term1 term2
gets parsed as
text:term1 defaultfield:term2
This happens long before the terms get to the analysis chain
for the field.

So your only options are to either quote the string or
escape the spaces.

Best,
Erick

On Wed, Sep 25, 2013 at 9:24 AM, elisabeth benoit
<elisaelisael...@gmail.com> wrote:
> Hello,
>
> I am using solr 4.2.1 and I have a autocomplete_edge type defined in
> schema.xml
>
>
> <fieldType name="autocomplete_edge" class="solr.TextField">
>   <analyzer type="index">
>     <charFilter class="solr.MappingCharFilterFactory"
> mapping="mapping-ISOLatin1Accent.txt"/>
>     <tokenizer class="solr.KeywordTokenizerFactory"/>
>     <filter class="solr.LowerCaseFilterFactory"/>
>     <filter class="solr.PatternReplaceFilterFactory" pattern="\s+"
> replacement=" " replace="all"/>
>     <filter class="solr.EdgeNGramFilterFactory" maxGramSize="30"
> minGramSize="1"/>
>    </analyzer>
>   <analyzer type="query">
>     <charFilter class="solr.MappingCharFilterFactory"
> mapping="mapping-ISOLatin1Accent.txt"/>
>     <tokenizer class="solr.KeywordTokenizerFactory"/>
>     <filter class="solr.LowerCaseFilterFactory"/>
>     <filter class="solr.PatternReplaceFilterFactory" pattern="\s+"
> replacement=" " replace="all"/>
>      <filter class="solr.PatternReplaceFilterFactory"
> pattern="^(.{30})(.*)?" replacement="$1" replace="all"/>
>   </analyzer>
> </fieldType>
>
> When I have a request with more then one word, for instance "rue de la", my
> request doesn't match with my autocomplete_edge field unless I use quotes
> around the query. In other words q=rue de la doesnt work and q="rue de la"
> works.
>
> I've check the request with debugQuery=on, and I can see in first case, the
> query is splitted into words, and I don't understand why since my field
> type uses KeywordTokenizerFactory.
>
> Does anyone have a clue on how I can request my field without using quotes?
>
> Thanks,
> Elisabeth

Reply via email to