0

SOLRには、フィールドを持つドキュメントがありid, words (indexed), raw_textます。この方法でフィールドだけを検索したいwords:単語は記事の不定詞です(またはキーワードを言います)。構文解析とレンマ化(ステミング)には別のツールを使用するので、それは問題のポイントではありません。

例:これらの2つの記事(テキスト)の場合、単語は次のようになります。

1昨日は休日だったので、出勤しませんでした。

言葉:昨日は休日なので仕事に行く

2明日は朝仕事をし、夕方は買い物に行きます。

言葉:明日は仕事に行く朝夕は店に行く

3つ の言葉:明日の仕事に行く

「go」の検索では、「go」が1より多いため、最初に2を取得します(より関連性が高くなります。また、私はたくさんの単語でより長いクエリを使用したいと思っており、それらのほとんどを含む記事をほとんどの場合取得しています。

例:検索:「gotomorrow work」は、 3つに1つだけではなく、2つの「go」があるため、 3よりも関連性の高い2を返します。

だから質問:どのように保存する必要がありwordsますか?multiValuedまたは単にsingle?どのフィールドタイプを使用する必要がありますか?

ありがとうございました!

4

1 に答える 1

1

(単一値)textが適しています。

テキストには、トークン化、ステミング、ストップワードアナライザーが付属しています。


ステミングは、ヒューリスティックを使用して単語の語根を導き出します。とりわけ、それは不定詞の形でさえあなたの記事のルートを見つけるでしょう:-)

サンプルで試してみてください(いくつかの追加があります):

Original: Yesterday [yesterday's] I didn't go to work [working, workable], because it was holiday [holidays].
Stemmed: Yesterdai yesterdai s I didn t go to work work workabl becaus it wa holidai holidai
Original: Tommorrow I am going [go,going,gone] to work in the morning [mornings] and in the evening I am going shopping [shoppers, shops].
Stemmed: Tommorrow I am go go go gone to work in the morn morn and in the even I am go shop shopper shop 

ヒューリスティックを使用するため、「workable」は「work」とルートを共有せず、「gone」は「go」とルートを共有しません。ただし、結果の品質を低下させることなく、はるかに単純かつ高速に機能するトレードオフです。


また、「didnt」と「I」はこのリストによるストップワードであるため、自動的に削除されます。


許容できない結果が頻繁に見られる場合は、Wordnetを実装するために手間をかけてください。補題、品詞、その他の自然言語の機能があります

于 2012-04-30T10:00:13.610 に答える