Zing による 3 つのコンポーネントを使用したドキュメントスコアの計算
Zing 検索エンジンは、ドキュメント内の検索用語の頻度、順序、重みからドキュメントスコアを計算します。
ドキュメントスコア
- 頻度:検索用語がドキュメントに表示される頻度。
- 順序:検索用語が検索クエリと同じ順序で表示される頻度。
- 重み付け:検索用語が表示されるソースフィールドの重み付けの程度。
頻度ポイント
Zing は、検索用語がドキュメント内のどこかに表示されるたびに 1 ポイントを付与します。たとえば、「distributed database server」を検索する場合、「distributed」が 3 回、 「database」が 5 回、「server」が 17 回含まれているドキュメントには、頻度ポイントが 25 ポイント付与されます。
ドキュメントには頻繁に表示されるものの、ドキュメントセットにはあまり表示されない検索用語の検索結果スコアを上げるには、「逆ドキュメント頻度 (IDF) による検索用語のスコアリング」の手順を実行できます。TF-IDF が有効になっている場合、検索用語スコアは、用語頻度スコアに逆ドキュメント頻度スコアを乗算して計算されます。TF-IDF を有効にすると、あまり一般的でない検索用語の重みが増すため、そのテーブルの検索結果が関連する可能性は高くなります。たとえば、「distributed database server」を検索するときに、「distributed」という用語が、1 つのドキュメントには頻繁に出現するものの、ドキュメントセット全体ではそれほど頻繁に出現しない場合には、「server」よりも高いスコアを受け取る可能性があります。
Zing は、検索語が表示されるフィールドの ts_weight 属性の値に基づいて、頻度ポイントに乗数を適用します。テキスト検索のスコアの重み付けが 30 (ts_weight=30) のフィールドでは、検索用語を含めるごとに 30 ポイントが追加されます。
順序ポイント
Zing は、入力された順序と同じ順序で検索用語が含まれているドキュメントに対して、より多くのポイントを付与します。順序どおりの検索用語があるほど、スコアは指数関数的に高くなります。Zing は順序ポイントを 10^x として付与します。ここで x は、順序どおりに出現する検索用語の数です。
「distributed database server」を検索する例では、Zing は、2 語の文字列「database server」が含まれているたびに、ドキュメントに 100 (10^2) の順序ポイントを付与します。同様に、Zing は、3 語の文字列 distributed database server が含まれているたびに、ドキュメントに 1000 (10^3) の順序ポイントを付与します。
Zing は、順序が表示されるフィールドの ts_weight 属性の値に基づいて、順序ポイントに乗数を適用します。順序ポイントは計算 (10^x * フィールド ts_weight 属性) を使用します。
フィールドスコアリングの重み付け
- kb_knowledge.number = 50
- kb_knowledge.short_description = 10
- kb_knowledge.meta = 10
- task.number = 50
- task.short_description = 10
他のすべてのフィールドのデフォルトの ts_weight 属性は 1 です。可能な最大の重み付け値は 255 です。