Elasticsearch-search-apis

提供:Dev Guides
移動先:案内検索

Elasticsearch-検索API

このAPIは、Elasticsearchでコンテンツを検索するために使用されます。 ユーザーは、パラメーターとしてクエリ文字列を使用してgetリクエストを送信することで検索できます。または、ポストリクエストのメッセージ本文にクエリを投稿できます。 主にすべての検索APIはマルチインデックス、マルチタイプです。

マルチインデックス

Elasticsearchでは、すべてのインデックスまたは特定のインデックスに存在するドキュメントを検索できます。 たとえば、中央を含む名前を持つすべてのドキュメントを検索する必要がある場合、ここに示すように行うことができます-

GET/_all/_search?q=city:paprola

上記のコードを実行すると、次の応答が得られます-

{
   "took" : 33,
   "timed_out" : false,
   "_shards" : {
      "total" : 7,
      "successful" : 7,
      "skipped" : 0,
      "failed" : 0
   },
   "hits" : {
      "total" : {
         "value" : 1,
         "relation" : "eq"
      },
      "max_score" : 0.9808292,
      "hits" : [
         {
            "_index" : "schools",
            "_type" : "school",
            "_id" : "5",
            "_score" : 0.9808292,
            "_source" : {
               "name" : "Central School",
               "description" : "CBSE Affiliation",
               "street" : "Nagan",
               "city" : "paprola",
               "state" : "HP",
               "zip" : "176115",
               "location" : [
                  31.8955385,
                  76.8380405
               ],
               "fees" : 2200,
               "tags" : [
                  "Senior Secondary",
                  "beautiful campus"
               ],
               "rating" : "3.3"
            }
         }
      ]
   }
}

URI検索

Uniform Resource Identifierを使用して、検索操作で多くのパラメーターを渡すことができます-

S.No Parameter & Description
1

Q

このパラメーターは、クエリ文字列を指定するために使用されます。

2

lenient

このパラメーターは、クエリ文字列を指定するために使用されます。このパラメーターをtrueに設定するだけで、フォーマットベースのエラーを無視できます。 デフォルトではfalseです。

3

fields

このパラメーターは、クエリ文字列を指定するために使用されます。

4

sort

このパラメーターを使用して、ソートされた結果を取得できます。このパラメーターに指定できる値は、fieldName、fieldName:asc/fieldname:descです。

5

timeout

このパラメーターを使用して検索時間を制限でき、応答にはその指定された時間のヒットのみが含まれます。 デフォルトでは、タイムアウトはありません。

6

terminate_after

シャードごとに指定された数のドキュメントに応答を制限し、それに到達すると、クエリは早期に終了します。 デフォルトでは、terminate_afterはありません。

7

from

返すヒットの開始インデックス。 デフォルトは0です。

8

size

返されるヒット数を示します。 デフォルトは10です。

ボディ検索のリクエスト

リクエストボディでクエリDSLを使用してクエリを指定することもできます。これまでの章では、すでに多くの例が示されています。 そのような例の1つをここに示します-

POST/schools/_search
{
   "query":{
      "query_string":{
         "query":"up"
      }
   }
}

上記のコードを実行すると、次の応答が得られます-

{
   "took" : 11,
   "timed_out" : false,
   "_shards" : {
      "total" : 1,
      "successful" : 1,
      "skipped" : 0,
      "failed" : 0
   },
   "hits" : {
      "total" : {
         "value" : 1,
         "relation" : "eq"
      },
      "max_score" : 0.47000363,
      "hits" : [
         {
            "_index" : "schools",
            "_type" : "school",
            "_id" : "4",
            "_score" : 0.47000363,
            "_source" : {
               "name" : "City Best School",
               "description" : "ICSE",
               "street" : "West End",
               "city" : "Meerut",
               "state" : "UP",
               "zip" : "250002",
               "location" : [
                  28.9926174,
                  77.692485
               ],
               "fees" : 3500,
               "tags" : [
                  "fully computerized"
               ],
               "rating" : "4.5"
            }
         }
      ]
   }
}