0

次の文字列「Ordoñez」を次のようにインデックス化する検索:

text :lastname

次に、次のように検索されます。

User.solr_search do 
  keywords 'Ordonez'
end

0 の結果を返します。

文字列にインデックスを付けるにはどうすればよいですか: solr を使用して Ordoñez を検索し、

keywords 'Ordonez'またkeywords 'Ordoñez'

インデックス時にASCIIFoldingFilterを試しましたが、うまくいきませんでした。

これを機能させるために私がしたことは次のとおりです。

4

2 に答える 2

0

私の問題は、たまたま使用されていないこれらの 3 つのフィールドがあることでした。

<field name="firstname_text" type="textgen" stored="false" multiValued="true" indexed="true"/>
<field name="lastname_text"  type="textgen" stored="false" multiValued="true" indexed="true"/>
<field name="specialty_text" type="textgen" stored="false" multiValued="true" indexed="true"/>

理由はよくわかりませんが、それらを削除するとすぐに、ASCII フィルターが機能し始めました。

ASCIIFoldingFilterFactory がその役割を果たします。

<analyzer>
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.ASCIIFoldingFilterFactory"/>
  <filter class="solr.SynonymFilterFactory"/>
</analyzer>
于 2012-10-12T21:47:25.087 に答える
0

おそらくコンテナ側にも処理を追加する必要があります。

国際文字が機能しない理由を確認できます

于 2012-10-12T06:03:53.670 に答える