2

この質問に密接に関連する質問があります。

私のスキーマにはフィールドがあります

<field name="text" type="textgen" indexed="true" stored="true" required="true"/>

これにより、完全一致が得られます。ステミング無効

食べる=食べる

単語の他のバリエーションを検索するために textgen に構成されている間に、それは可能ですか?

例えば。食べる=食べる、食べる、食べる

eat~0 は、肉、ビートなどのような響きの単語を提供しますが、これは私が望むものではありません。

これを達成する唯一の方法は、別のフィールドを textgen 以外のもので追加することだと考え始めていますが、もっと簡単な方法があれば、それを聞くことに非常に興味があります。

4

2 に答える 2

7

ステートメントの使用copyfieldは、Solrの通常のアプローチです。stemmingまさにあなたが求めているものに対する答えなので、これを使用することをお勧めします。stored=falseインデックスサイズが気になる場合は設定できます。

また、ステミングの反対であるを使用することもできlemmatisationます。代わりに、すべての語形変化した単語を追加します。これは通常、検索クエリで実行され、たとえば、などに展開さeatれます。eat, eats, eating

3番目の選択肢は、ワイルドカード検索を使用することですが、お勧めしません。特に、ターゲットフィールドのスキーマ構成済みフィルターをすべてバイパスするためです。

于 2011-06-21T20:39:16.373 に答える
1

フィールドタイプとして使用するtextと、食べる、食べる、食べられる、食べるがすべてとして保存されeat、検索するFieldName:eatとそれらすべてが見つかります。フィールド タイプを に変更するとtext-gen、検索でFieldName:eatは「eat」のみが検出され、eats、eated、eating は検出されません。

于 2011-06-22T02:46:16.067 に答える