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)があります。
  • 全てのラインを ; で区別して文字列で入力します。

表現式

  • 算術演算子 : +, -, *, /
  • 比較演算子 : >, <, >=, <=, ==, !=
  • 論理演算子 : |, &, !
  • 常数表現 : 整数、実数、 true, false
  • 条件表現式 : 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"
  }
}

#

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

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

    処理中...