2017-01-09 9 views
0

私はクエリを実行し、MLTがスコアを照会2を比較しようとしている間Elasticsearchクエリースコアの比較が、ビットは、クエリノルムの意図があるにもかかわらず、私はここに https://www.elastic.co/guide/en/elasticsearch/guide/current/practical-scoring-function.html複数のクエリ

を読んで内容に基づいて混乱しています 異なるクエリの結果を比較できるようにするには、うまく機能しません。関連性_scoreの唯一の 目的は、現在の クエリの結果を正しい順序で並べ替えることです。 異なるクエリの 関連性スコアを比較しようとしないでください。私はMLTクエリと文書を実行した場合

「」「B」の文書と類似しており、スコアが0.4と逆に、 MLTクエリ文書「B」を実行ある「A」を記録するために類似しており、そのスコアは2.4です。

私はMLTでマッチしたトークンに基づいて同じスコアを期待しますが、そうではありません。

また、MLTクエリを実行し、ドキュメント 'A'がドキュメント 'B'と似ていてスコアが0.6で、別のMLTクエリドキュメント 'C'を実行している がドキュメント 'A' 4.7である。

だから私の質問は以下のとおりです。

  1. これはCがはるかに類似するBよりであることを暗示していますか?
  2. また、スコアが異なる場合、elasticsearchの複数のクエリを比較するにはどうすればよいでしょうか?

おかげで、 - フィル

答えて

1

1.

いいえ、それはしていません。あなたの質問に記載されているように、異なるクエリのスコアを比較すべきではありません。ドキュメントがCに最も似ている意味のある結果を得たい場合は、ドキュメントCのMLTクエリを生成し、そのドキュメントで検索する必要があります。

これは、MLTクエリがどのように機能するかによって2倍になります。 MLTは、(索引の用語のライブラリに基づいて)あなたの文書から検索する興味深い用語のリストを生成しようと試み、それらを検索します。ドキュメントAから生成された用語のセットは、ドキュメントBから生成されたものとは大きく異なる可能性があります。つまり、ドキュメント自体が明らかに同じオーバーラップを持つにもかかわらず、BからAを見つけるときには大きく異なるスコア、

Do not。ドキュメントを聞く。スコアはのみであり、ドキュメントを生成したクエリとドキュメントの一致度を評価するように設計されています。その文脈の外でそれらを使用することは意味がありません。あなたが達成しようとしていることを再考してください。