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 <erickerick...@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 > <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 >