0

SOLR では、アルファベット順に結果を取得するフィールドを定義したいと考えています。したがって、「S」を検索すると、S で始まる結果のみが表示されます (1 つのフィールドで検索します)。
これは私がそれを定義しようとした方法ですが、「S」で始まらない結果ももたらします

<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100">
       <analyzer type="index">
         <tokenizer class="solr.LowerCaseTokenizerFactory"/>
         <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="5" side="front"/>
       </analyzer>
       <analyzer type="query">
          <tokenizer class="solr.LowerCaseTokenizerFactory"/>
       </analyzer>
</fieldType>

私が使用するクエリ:

http://MySERVER/solr/content/select/?q=alpha_title:s&start=0&rows=15

私には、フィルターではなくngramsトークナイザーを使用するべきだったようです。テストして更新します。

4

2 に答える 2

0

思った通り、アナライザーで ngram フィルターの代わりに ngram トークナイザーを使用する必要があります。したがって、これは作業スキーマです。

<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="org.apache.solr.analysis.EdgeNGramTokenizerFactory" minGramSize="1" maxGramSize="5"/> 
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.LowerCaseTokenizerFactory"/>
    </analyzer>
</fieldType>
于 2012-09-11T14:18:59.067 に答える
0

Itay Moav が私のコメントを回答として入れるように私に頼んだので、ここに行きます:

次のようにエイリアス検索を行う必要があります。

http://MySERVER/solr/content/select/?q=alpha_title:s*&start=0&rows=15

星はsで始まらなければならないと言っています。

于 2012-10-08T20:43:27.187 に答える