Ranking使用ガイド

Summary

  • ランキングモジュールを利用すると、サービスに合わせて文書プロパティを類似度計算に反映できます。
  • ランキング変数とランキングコードの作成方法を説明します。
  • 基本ランキングに設定したモジュールは検索の際、rankingオプションがなくてもソートオプションにランキング変数を使用できます。
_ratio=0.5;
_quality=1.0;
_similarity=qds;
_relevance = _similarity * _ratio + _quality * (1 - _ratio);
  • qds:インデックスを設定する際、デフォルトで適用される文書加重値で、類似度を意味します。
  • 適合度(relevance)は通常、類似度(similarity)と品質(quality)の合計で表示します。
  • 文書プロパティの値を読み取る関数を使って適用できます。 dp_セクション名
_ratio=0.5;
_quality= dp_like_cnt * 0.09 + dp_dislike_cnt * 0.01;
_similarity=qds;
_relevance = _similarity * _ratio + _quality * (1 - _ratio);
  • 検索の際、sortオプションのparameterを_relevanceに指定します。
{
...
  "sort": {
    "_relevance" : "asc|desc"
  }
...
}

Ranking code

  • 一つの関数の形式で代入文のみ使用します。
relevance = qds;
relevance() = qds; // 上と完全に同じです。
relevance( x ) = x*qds;
  • すべての変数は内部的にタイプ(bool | int | double | string)があります。
  • すべてのラインを;で区別して文字列で入力します。

表現式

  • 算術演算子:+-*/
  • 比較演算子:><>=<===!=
  • 論理演算子:|, &, !
  • 定数表現:整数、実数、truefalse
  • 条件表現式:if - then - else
mtr = mtc/qtermc;
quality = 1.0
relevance = if mtr >= 0.6 then qds + quality else quality;

組み込み関数

  • min(a, b):最小値
  • max(a, b):最大値
  • exp(x):指数
  • log(x):自然ログ
  • log10(x):ログ
  • sqrt(x):平方根
  • pow(x, y):xのy乗

クエリプロパティ

  • qtermc:Query - Term - Count、クエリの検索キーワード数、qdsに加算されるターム数
  • qry_qtermc(query_name):特定クエリのqtermc。 複合クエリの場合、個別クエリのqtermcを取得するために使用
  • qry_exist(query_name):query_nameの名前のクエリがあるかどうかを返す
  • epoch_time:クエリ実行開始時点の時間。

文書スコア

  • qds : Query - Document - Score. 文書加重値、クエリ文書の類似度。
  • qry_qds(query_name):特定クエリのqds
  • mtc : Matched - Term - Count. 検索対象文書に含まれているクエリのターム数
  • qry_mtc(query_name):特定クエリのmtc

その他

  • total_document_count:合計検索結果の文書数(推定)
  • 上記の組み込み関数だけでなく、_で始まるシンボルは内部用で予約されているため注意が必要です。

使用の例

Ranking code

relevance = min(qry_mtc("q1"), qry_mtc("q2"));
normalized_qds = qds/qtermc;
normalized_qds_of_q1 = qry_qds("q1") / qry_qtermc("q1");
mtratio = mtc/qtermc;

Search query

{
  "search": {
    "index_name": {
      "main": [
        {
          "name": "q1",
          "query": "term"
        },
        {
          "name": "q2",
          "query": "test"
        }
      ]
    }
  },
  "sort" : {
      "relevance": "desc"
  }
}

#

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...