学習によるランキングを使用した検索

この機能はバージョン8.12.0で導入され、特定のサブスクリプションレベルでのみ利用可能です。詳細については、https://www.elastic.co/subscriptionsを参照してください。

再スコアラーとしての学習によるランキング

LTRモデルがトレーニングされ、Elasticsearchにデプロイされると、検索API再スコアラーとして使用できます:

Python

  1. resp = client.search(
  2. index="my-index",
  3. query={
  4. "multi_match": {
  5. "fields": [
  6. "title",
  7. "content"
  8. ],
  9. "query": "the quick brown fox"
  10. }
  11. },
  12. rescore={
  13. "learning_to_rank": {
  14. "model_id": "ltr-model",
  15. "params": {
  16. "query_text": "the quick brown fox"
  17. }
  18. },
  19. "window_size": 100
  20. },
  21. )
  22. print(resp)

Ruby

  1. response = client.search(
  2. index: 'my-index',
  3. body: {
  4. query: {
  5. multi_match: {
  6. fields: [
  7. 'title',
  8. 'content'
  9. ],
  10. query: 'the quick brown fox'
  11. }
  12. },
  13. rescore: {
  14. learning_to_rank: {
  15. model_id: 'ltr-model',
  16. params: {
  17. query_text: 'the quick brown fox'
  18. }
  19. },
  20. window_size: 100
  21. }
  22. }
  23. )
  24. puts response

Js

  1. const response = await client.search({
  2. index: "my-index",
  3. query: {
  4. multi_match: {
  5. fields: ["title", "content"],
  6. query: "the quick brown fox",
  7. },
  8. },
  9. rescore: {
  10. learning_to_rank: {
  11. model_id: "ltr-model",
  12. params: {
  13. query_text: "the quick brown fox",
  14. },
  15. },
  16. window_size: 100,
  17. },
  18. });
  19. console.log(response);

コンソール

  1. GET my-index/_search
  2. {
  3. "query": {
  4. "multi_match": {
  5. "fields": ["title", "content"],
  6. "query": "the quick brown fox"
  7. }
  8. },
  9. "rescore": {
  10. "learning_to_rank": {
  11. "model_id": "ltr-model",
  12. "params": {
  13. "query_text": "the quick brown fox"
  14. }
  15. },
  16. "window_size": 100
  17. }
  18. }
再スコアリングのために文書を提供する最初のクエリ。
Elasticsearchにアップロードされたトレーニング済みモデルの一意の識別子。
特徴に使用されるクエリテンプレートに渡される名前付きパラメータ。
各シャードで再スコアラーによって検査されるべき文書の数。

既知の制限

再スコアウィンドウサイズ

LTRモデルから返されるスコアは、通常、最初のクエリから発行されたスコアと比較できず、非再スコアリングスコアよりも低くなる可能性があります。これにより、非再スコアリング結果の文書が再スコアリングされた文書よりも高くランク付けされる可能性があります。これを防ぐために、window_sizeパラメータはLTR再スコアラーにとって必須であり、from + size以上である必要があります。

ページネーション

ユーザーにページネーションを公開する際、window_sizeは各ページが異なるfrom値を渡すことで進行するにつれて一定である必要があります。window_sizeを変更すると、トップヒットが変わり、ユーザーがページを進むにつれて結果が混乱してシフトする可能性があります。

負のスコア

モデルのトレーニング方法によっては、モデルが文書に対して負のスコアを返す可能性があります。負のスコアは第一段階の取得およびランキングからは許可されていませんが、LTR再スコアラーで使用することは可能です。

特徴としての用語統計

現在、用語統計を特徴としてサポートしていませんが、今後のリリースでこの機能が導入される予定です。