ルールクエリ

rule_query は 8.15.0 で rule に名前が変更されました。rule_queryruleset_id を使用した古い構文は非推奨となり、将来のリリースで削除される予定ですので、既存のルールクエリを新しい API 構造に移行することを強くお勧めします。

結果を返す前に、クエリルール をクエリに適用します。この機能は、定義されたルールに基づいて ピン留めされたクエリ の方法でドキュメントを促進するために使用されます。マッチするクエリルールが定義されていない場合、クエリに対する「オーガニック」マッチが返されます。すべてのマッチするルールは、クエリルールセットに表示される順序で適用されます。

ルールクエリを使用するには、まず定義されたクエリルールのセットが必要です。クエリルール管理 API を使用してクエリルールを作成および管理します。詳細情報と例については、クエリルールを使用した検索を参照してください。

例のリクエスト

Python

  1. resp = client.search(
  2. query={
  3. "rule": {
  4. "match_criteria": {
  5. "user_query": "pugs"
  6. },
  7. "ruleset_ids": [
  8. "my-ruleset"
  9. ],
  10. "organic": {
  11. "match": {
  12. "description": "puggles"
  13. }
  14. }
  15. }
  16. },
  17. )
  18. print(resp)

Js

  1. const response = await client.search({
  2. query: {
  3. rule: {
  4. match_criteria: {
  5. user_query: "pugs",
  6. },
  7. ruleset_ids: ["my-ruleset"],
  8. organic: {
  9. match: {
  10. description: "puggles",
  11. },
  12. },
  13. },
  14. },
  15. });
  16. console.log(response);

コンソール

  1. GET /_search
  2. {
  3. "query": {
  4. "rule": {
  5. "match_criteria": {
  6. "user_query": "pugs"
  7. },
  8. "ruleset_ids": ["my-ruleset"],
  9. "organic": {
  10. "match": {
  11. "description": "puggles"
  12. }
  13. }
  14. }
  15. }
  16. }

ルールクエリのトップレベルパラメータ

  • ruleset_ids
  • (必須、配列)クエリベースのルールに一致し、適用するための 1 つ以上のユニークな クエリルールセット ID の配列。ルールセットとその関連ルールは、クエリおよびルールセットに指定された順序で評価されます。指定できるルールセットの最大数は 10 です。
  • match_criteria
  • (必須、オブジェクト)指定されたクエリルールセット内のルールに適用するマッチ基準を定義します。マッチ基準は、ルールの criteria.metadata フィールドに定義されたキーと一致する必要があります。
  • organic
  • (必須、オブジェクト)結果を返すために使用される任意の クエリ で、マッチするクエリルールによって変更される可能性があります。クエリルールがマッチして適用されない場合、このクエリは変更なしで実行されます。