3

スキーマファイルの構成で EdgeNGramFilterFactory を使用します

<fieldType name="prefix_token_text" class="solr.TextField" positionIncrementGap="1">
    <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="20" side="front" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>            
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

スキーマに 8 つのフィールドがあります。私は設定を持っています

<field name="text" type="prefix_token_text" indexed="true" stored="false" multiValued="true"/>

<copyField source="AccountName" dest="text" /> 

私のデータインデックスは約3億です。

私が検索した場合

sanosuke

次のような結果が得られます

sanosuke3
sanosuke2
sanosuke1
sanosuke
sanosukebn
sanosukeqns
......

その上に結果左之助が欲しい。なぜそうなのですか?助けて。皆さんありがとう :)

4

1 に答える 1

1

クエリに並べ替えを追加します。q=text:sanonuke&sort=text asc のように

于 2012-12-06T17:13:53.147 に答える