Slide 1

Slide 1 text

Query Rulesの現在地
 第58回Elasticsearch勉強会 2024.2.28
 Kazuma Arimura (@pakio)


Slide 2

Slide 2 text

自己紹介
 Kazuma Arimura
 
 ● 株式会社メルカリ
 ● Mercari US@Tokyo ML/Search team
 
 ● Software Engineer(Search)


Slide 3

Slide 3 text

Query Rules とは?


Slide 4

Slide 4 text

Query Rules とは?
 ● 検索時に何らかの目的を持ってクエリを動的に書き換える機能、
 及びその際に参照するルールセット


Slide 5

Slide 5 text

参考:他の検索エンジンでは?
 ● Vespa
 ○ Query Rewriting 機能
 ■ 検索クエリの書き換え無しで利用可能 (要設定) 
 ■ 検索キーワードをトリガーに発動 
 ■ 特定フィールドへのBoosting, Rewrite, Stop wordsなどが利用可能 
 ● Algolia
 ○ Rules 機能
 ■ 検索クエリの書き換え無しで利用可能 (要設定) 
 ■ 検索クエリをトリガーに発動 
 ■ 文書の固定, 文書の非表示, Stop words, Rewrite, Boostingなどが利用可能 


Slide 6

Slide 6 text

Query Rules API


Slide 7

Slide 7 text

https://www.elastic.co/jp/blog/introducing-query-rules-elasticsearch-8-10


Slide 8

Slide 8 text

要約:Introducing query rules in Elasticsearch 8.10
 ● 検索結果を検索クエリへの関連度とは別の観点からカスタマイズする機能
 ● Elasticsearch 8.10 で導入 (Technical Preview)
 ● 現在はPinned Queryの動的な挿入をサポート
 
 ● 想定ユースケース例
 ○ ナレッジ検索 : お知らせページの固定 
 ○ EC検索 : プロダクトのプロモーション 


Slide 9

Slide 9 text

前提:Pinned Query とは?
 ● Elasticsearch 7.4 で追加
 ● 検索クエリの関連度に関わらず、
 指定された文書を優先して返却


Slide 10

Slide 10 text

前提:Pinned Query とは?
 通常の検索クエリ


Slide 11

Slide 11 text

前提:Pinned Query とは?
 固定対象の文書ID


Slide 12

Slide 12 text

前提:Pinned Query とは?
 スコアがかさ増しされ、優先的に返却


Slide 13

Slide 13 text

Query Rules の利用方法
 引用元: https://www.elastic.co/jp/blog/introducing-query-rules-elasticsearch-8-10 


Slide 14

Slide 14 text

Query Rules の利用方法
 1. Query Rules の作成
 2. Query Rules の登録
 3. 検索クエリの書き換え


Slide 15

Slide 15 text

1. Query Rules の作成
 rule_id
 管理用ID
 type
 ルールの種類
 criteria
 適用条件の詳細
 type: 
 - exact: 完全一致 
 - fuzzy: 一定編集距離内の場合一致 
 - prefix: 前方一致 
 - suffix: 後方一致 
 - contains: 含有
 - lt, lte, gt, gte: 数値範囲 
 - always: 常時オン 
 metadata: 検索時に指定
 actions
 固定ドキュメントの指定 (Max: 100) 


Slide 16

Slide 16 text

2. Query Rules の登録
 PUT /_query_rules API 
 経由で登録


Slide 17

Slide 17 text

3. 検索クエリの書き換え
 organic 内に検索条件を移動
 +
 適用対象の ruleset_id を指定


Slide 18

Slide 18 text

3. 検索クエリの書き換え
 match_criteria 内に
 ルール照会条件を指定
 ※ ルール作成時のmetadataに該当


Slide 19

Slide 19 text

Query Rules
 👍
 ● Relevancyを超えて最適化が可能
 ● API経由で管理
 ● 適用条件のカスタマイズ性
 👎
 ● 機能がIDベースのPinned Queryに限定
 ● クエリの書き換えが必要


Slide 20

Slide 20 text

参考:Searchkit
 ● Searchkit
 ○ Query Rules 機能
 ■ 検索クエリの書き換え無しで利用可能 (要設定) 
 ■ 検索キーワードをトリガーに発動 
 ■ 特定フィールドへのBoosting, Rewrite, Stop wordsなどが利用可能 


Slide 21

Slide 21 text

Thanks!