Well, what would you have SOLR do that makes sense if you
don't define a query analyzer? Very very strange things
happen if you use different analyzers for indexing
and querying. At least defaulting that way has a *chance* of
giving expected results...

Why not use, say, KeywordTokenizerFactory if you really
want the query analyzer to do nothing? Perhaps lowercasing
etc. See:
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters

<http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters>HTH
Erick

On Fri, Mar 12, 2010 at 3:00 AM, Michael Kuhlmann <
michael.kuhlm...@zalando.de> wrote:

> Hi all,
>
> I have a field with some kind of category tree as a string. The format
> is like this:
>        "prefix>first>second#prefix>otherfirst>othersecond"
>
> So, the document is categorized in two categories, separated by '#', and
> all categories start with the same prefix which I don't want to use.
>
> For indexing, I have some fields for each category level, filled by
> copyFields. For instance, the first level is defined using this type:
>
> <fieldType name="text_first_cat" class="solr.TextField"
> positionIncrementGap="100">
>       <analyzer type="index">
>          <tokenizer class="solr.PatternTokenizerFactory"
>                  pattern="(?:#|^)\w*>([\p{L}\d]+)" group="1"/>
>        </analyzer>
>    </fieldType>
>
> This works fine, except one thing: This analyzer is being used for
> queries also, not only for indexing. So, a query for "x>first" gets
> results, but a query for "first" only finds nothing. However, I want the
> latter case.
>
> If I add some pseudo-analyzer that does nothing like this:
>       <analyzer type="query">
>          <tokenizer class="solr.PatternTokenizerFactory"
>                  pattern=".*" group="0"/>
>        </analyzer>
> then I get the result that I want. If I don't add a query analyzer at
> all, the index analyzer is being used for queries, what is strange and
> not what I would expect.
>
> I just want some
> Take-the-query-as-it-is-and-do-nothing-with-it-Analyzer, as if I don't
> specify some analyzer at all. However, if I simply add
>        <analyzer type="query" />
> to it, I get a parser exception from Solr.
>
> Is there a clean solution for this? And why is Solr ignoring the
> analyzer type as long as there is only one analyzer defines per type?
>
> Greetings,
> Michael
>

Reply via email to