2012-03-20 7 views
1

私がやろうとしていますすべてが私のschema.xmlでのSolr SynonymFilterFactoryを利用です:solr同義語フィルタが機能しないのはなぜですか?

<fieldType name="text" class="solr.TextField" omitNorms="false"> 
    <analyzer type="index"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
    </analyzer> 
</fieldType> 

はsynonyms.txt:

american, greek 

入力文字列が、それはgreek food文字列を見つけることができませんamericanとき結果セットに含まれます。
しかし、greekと入力すると、greek food

私の設定や同義語ファイルに問題がありますか?

おかげ

+0

ここには古いスレッドですが、同じ問題があります。私はWhitespaceTokenizerFactoryに変更しました。それがそれと何か関係があるかどうか分かります。 – frugardc

答えて

2

ザ・にのみ、私はあなたが不要で、クエリとインデックスの両方の同義語を使用しているされていることを見つけることができると思います。クエリ時に同義語のみを試してみてください。 *

これらの関連性の問題をデバッグするには、Solrクエリ分析GUIを強くお勧めします。これは、メインのSolr Admin GUIにあります。分析と呼ばれるリンクに従ってください。

* Psでは、クエリまたはインデックス時に同義語を使用する必要があるかどうかについては、多くの面白い議論があります。この答えには適していない、長く複雑な議論です。

幸運を祈る!この出くわす他の人のために

+0

Solrで分析ツールを使用する方法の例を挙げることができますか?フィールド名=テキストを使用し、同義語の半分を提供しました。 – AlxVallejo

+0

私はチュートリアルに続き、分析に関する小さなセクションを読むでしょう。 http://lucene.apache.org/solr/tutorial.html –

0

、私はテストケースだった: ロバを、私は期待していたeeoreクエリロバのための分析GUIで

をeeore。私はこれを得ていなかった。 「ロバ」を手に入れただけだった。私はトークナイザを変更する必要があるかもしれないと思った。

しかし、それは拡張= trueだった - 私は虚偽だった。 Docsでは、expand = falseの場合は、最初の同義語と行の一致のみが一致します。私はそれを真実に設定し、私が期待したとおりに機能しました。

関連する問題