MoreLikeThisComponent を使用して同様のドキュメントを見つけようとしていました。結果の 1 つで、「interestingTerms」にテキスト分析結果の一部ではない用語が含まれていたため、MLT で使用されている用語について疑問に思っていました。
テキスト分析中に特定された用語は次のとおりです。
- 1er
- アンラグ
- ロッシュ
- 予約
そして、TermsComponent が返すものは次のとおりです。
- 1er
- アンラグ
- ゲロシュト
- ロッシュ
- p12
- 予約
- schneider.go
したがって、テキスト分析の結果によると、「p12」および「schneider.go」という用語は、TermsComponent によって返される用語リストに表示されません。「geloscht」という用語は、テキスト分析中に「loesch」に置き換えられたため、TermsComponent によって返される用語リストにも表示されません。
テキスト分析の私のアプローチ: まず、PatternReplaceCharFilter を使用して、テキスト フィールドに渡されたテキストの一部を削除します。その理由は、すべてのドキュメントに繰り返しテキスト部分が含まれているためです。これらのテキスト部分には意味的な意味はなく、テキストの種類、追加したユーザー、テキスト ブロックが追加された日付を示すために使用されます。
TermsComponent によって返される 2 つの追加の用語は、元のテキストに由来し、PatternReplaceCharFilter によって削除されました。
確認したところ、MLT によって識別される「interestingTerms」は、TermsComponent によって返されるものと同じです。また、TermVector を格納するフィールドと、TermVector を格納しないテキスト フィールドに違いがあるかどうかも確認しました。どちらのバリアントでも、TermsComponent によって同じ用語が返されます。
MLT が使用する用語は、テキスト分析中に識別された用語とは異なるため、MLT が返すドキュメントが多すぎます。
MLT が用語を使用し、TermsComponent がテキスト分析結果の一部ではない用語を返す理由を知っている人はいますか?
そして、おそらく誰かが解決策を知っていますか?
完全を期すために: 2011 年 12 月 7 日からの Solr 4 Trunk バイナリ ビルドを使用しています。