lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elisabeth benoit <elisaelisael...@gmail.com>
Subject Re: autocomplete_edge type split words
Date Fri, 27 Sep 2013 11:37:23 GMT
Thanks for your answer.

So I guess if someone wants to search on two fields, on with phrase query
and one with "normal" query (splitted in words), one has to find a way to
send query twice: one with quote and one without...

Best regards,
Elisabeth


2013/9/27 Erick Erickson <erickerickson@gmail.com>

> 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
> <elisaelisaelisa@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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message