検索アプリケーション検索

この機能はベータ版であり、変更される可能性があります。デザインとコードは公式GA機能よりも成熟しておらず、保証なしでそのまま提供されています。ベータ機能は公式GA機能のサポートSLAの対象外です。

指定されたクエリパラメータに基づいて、検索アプリケーションに関連付けられた検索テンプレートを使用してElasticsearchクエリを生成および実行します。指定されていないテンプレートパラメータにはデフォルト値が割り当てられます(該当する場合)。

リクエスト

POST _application/search_application/<name>/_search

前提条件

検索アプリケーションのバックエイリアスに対する読み取り権限が必要です。

パスパラメータ

  • typed_keys
  • (オプション、ブール値)trueの場合、集約およびサジェスター名はレスポンス内でそれぞれのタイプによってプレフィックスされます。デフォルトはfalseです。

リクエストボディ

  • params
  • (オプション、文字列からオブジェクトへのマップ)検索アプリケーションに関連付けられた検索テンプレートからElasticsearchクエリを生成するために使用されるクエリパラメータ。検索テンプレートで使用されるパラメータがparamsで指定されていない場合、そのパラメータのデフォルト値が使用されます。

検索アプリケーションは、検索テンプレートパラメータを検証するように構成できます。詳細については、検索アプリケーションを更新するAPIのdictionaryパラメータを参照してください。

レスポンスコード

  • 400
  • 検索テンプレートに無効なパラメータが渡されました。例には以下が含まれます:
    • 必須パラメータが欠落している
    • 無効なパラメータデータ型
    • 無効なパラメータ値
  • 404
  • 検索アプリケーション<name>は存在しません。

以下の例は、テキスト検索の例からの検索テンプレートを使用して、my-appという検索アプリケーションに対して検索を実行します:

Python

  1. resp = client.search_application.search(
  2. name="my-app",
  3. params={
  4. "query_string": "my first query",
  5. "text_fields": [
  6. {
  7. "name": "title",
  8. "boost": 5
  9. },
  10. {
  11. "name": "description",
  12. "boost": 1
  13. }
  14. ]
  15. },
  16. )
  17. print(resp)

Js

  1. const response = await client.searchApplication.search({
  2. name: "my-app",
  3. params: {
  4. query_string: "my first query",
  5. text_fields: [
  6. {
  7. name: "title",
  8. boost: 5,
  9. },
  10. {
  11. name: "description",
  12. boost: 1,
  13. },
  14. ],
  15. },
  16. });
  17. console.log(response);

コンソール

  1. POST _application/search_application/my-app/_search
  2. {
  3. "params": {
  4. "query_string": "my first query",
  5. "text_fields": [
  6. {"name": "title", "boost": 5},
  7. {"name": "description", "boost": 1}
  8. ]
  9. }
  10. }

生成されたElasticsearchクエリは次のようになります:

コンソール-結果

  1. {
  2. "from": 0,
  3. "size": 10,
  4. "query": {
  5. "multi_match": {
  6. "query": "my first query",
  7. "fields": [
  8. "description^1.0",
  9. "title^5.0"
  10. ]
  11. }
  12. },
  13. "explain": false
  14. }

この場合、fromsize、およびexplainパラメータはリクエストで指定されていないため、検索テンプレートで指定されたデフォルト値が使用されます。

期待されるレスポンスは、生成されて実行されたElasticsearchクエリからの検索結果です。レスポンス形式は、Elasticsearch Search APIで使用される形式と同じです:

コンソール-結果

  1. {
  2. "took": 5,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 1,
  13. "relation": "eq"
  14. },
  15. "max_score": 0.8630463,
  16. "hits": ...
  17. }
  18. }