1

タグ付けシステムがあり、タグは次のようになります。

italian kitchen
chinese kitchen
japanese kitchen
russian kitchen
vegeterian kitchen

イタリアのキッチンを照会すると、イタリアのキッチンが一番上に表示されません。私は常にロシア語と日本語を取得し、その他の無関係な結果が得られます. Solr スキーマでは、タグ フィールドの型は文字列です。なぜこれが起こっているのか分かりません。あなたのアイデアを私と共有できますか?

4

3 に答える 3

4

「文字列」のフィールド タイプは、フィールドがトークン化されていないことを意味します。そのため、各フィールドには 1 つのトークン (渡された文字列全体) があります。そのため、フィールド全体で完全に一致するフレーズ クエリがない限り、他の結果より関連性の高い結果はありません。

おそらく、デフォルトのスキーマでタイプ「テキスト」を使用することをお勧めします。これにより、フィールドがトークンに分割されます。IE では、「イタリアン キッチン」の代わりに、「イタリアン」と「キッチン」の両方の用語がフィールドにインデックス化されます。

于 2013-01-13T00:38:42.897 に答える
1

tokenizers のセクション、少なくとも最初の 2 つのセクションを読み通す必要があります。次に、Solr 4 を使用している場合は、管理インターフェイスに移動し、コアのセクションの下にある [分析] 画面を試してください。これにより、テキストをタイプ (猫) に入れ、実際にどのように分解されるかを確認できます。

さて、あなたは「イタリアン キッチン」をファセット カテゴリにして検索可能にしたいようですね。ファセット値は生成されたトークンから取得されるため、これは二重の課題です。そのため、それを文字列として使用する必要があります。その場合、私の提案は、catフィールドを文字列フィールドとして保持し、 copyFieldをトークン化された型を持つ cat_text に実行し (例のスキーマを参照)、 eDismax を使用してcat_textを含む複数のフィールドを検索することです。

于 2013-01-13T15:21:18.530 に答える
0

必ず実行してください。

q = your_field:"イタリアンキッチン"

ではなく

q = your_field:italiankitchen

于 2013-01-13T17:35:35.877 に答える