English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Webアプリケーションにプログラミングインターフェース(API)とは、特定のWebアプリケーション内のソフトウェアコンポーネントにアクセスするための一组の関数呼び出しや他のプログラミング命令です。例えば、Facebook APIはFacebookからのデータや他の機能にアクセスして、開発者がアプリを作成するのを助けます;それは誕生日やステータスの更新などです。
ElasticsearchはREST APIを提供しており、HTTPを通じてこのAPIにアクセスできます。Elasticsearchはいくつかの約束事を使用しており、これらについて説明します。
APIの多くの操作、主に検索や他の操作は、1つまたは複数のインデックスに対して行われます。これにより、ユーザーは一度のクエリで複数の場所やすべての利用可能なデータを検索できます。複数のインデックスで操作を行うためには、多くの異なるシンボルが使用されます。これらのシンボルのいくつかについて、本章で説明します。
POST /index1,index2,index3/_search
{ "query":{ "query":"any_string" } } }
indexから来ます1, index2, index3のJSONオブジェクトにはany_stringが含まれています。
POST /_all/_search
{ "query":{ "query":"any_string" } } }
すべてのインデックスから来るJSONオブジェクト、それにはany_stringが含まれています。
POST /*/_search
{ "query":{ } } }
CBSEを含む学校を始めるすべてのインデックスからのJSONオブジェクト
また、以下のコードを使用することもできます-
POST /*,-schools_gov /_search
{ "query":{ } } }
JSONオブジェクトは「school」で始まるすべてのインデックスから来ていますが、school_govから来ていないかつCBSEを含むインデックスから来ています。
まだURLクエリ文字列パラメータがあります-
ignore_unavailable−index(es)URLに存在しない一つまたは複数のインデックスがある場合、エラーは発生しませんまたは操作は停止します。例えば、schoolインデックスは存在しますが、book_shopsは存在しません。
POST /*/_search
{ "query":{ } } }
{ }], },404 }
以下のコードを考慮してください-
POST /*/
{ "query":{ } } }
CBSEを含む学校を始めるすべてのインデックスからのJSONオブジェクト
trueワイルドカードを含むURLにインデックスが無い場合、このパラメータの値はエラーを防ぎます。例えば、schools_priで始まるインデックスが無い場合-
POST /*/
{ "query":{ "match_all":{} } }
{ 1 }
このパラメータは、ワイルドカードがオープンインデックスや閉じたインデックスに拡張されるかどうか、または両方を同時に実行されるかどうかを決定します。このパラメータの値は、オープン、クローズ、またはどちらでもありません
例えば、インデックス学校を閉じます-
POST /schools/
以下のコードを考慮してください-
POST /*/
{ "query":{ "match_all":{} } }
{ }], }403 }
Elasticsearchは日付と時間に基づいてインデックスを検索する機能を提供しています。日付と時間を特定の形式で指定する必要があります。例えば、accountdetail-2015.12.30,索引将存储2015年12月30日的银行帐户详细信息。可以执行数学运算以获取特定日期或日期和时间范围的详细信息。
日期数学索引名称的格式-
<static_name{date_math_expr{date_format|time_zone}}> /<accountdetail-{now-2d{YYYY.MM.dd|utc}}>/_search
static_nameは表达式の一部であり、各日付の数学的なインデックス(例えば顧客詳細)で常に変更されません。date_math_exprには、now-2d一样动态确定日期和时间。date_format包含将日期写入诸如YYYY.MM.dd之类的索引中的格式。如果今天是2015年12月30日,则<accountdetail- {now-2d {YYYY.MM.dd}}>将返回accountdetail-2015.12.28。
表达 | 解析为 |
---|---|
<accountdetail-{now-d}> | accountdetail-2015.12.29 |
<accountdetail-{now-M}> | accountdetail-2015.11.30 |
<accountdetail-{now{YYYY.MM}}> | accountdetail-2015.12 |
今、Elasticsearchが提供する一般的なオプションを見てみましょう。これらのオプションは、指定された形式の応答を取得するために使用できます。
URLクエリパラメータ(pretty = true)を追加することで、整形されたJSONオブジェクトで応答を取得できます。
POST /schools/_search?pretty = true
{ "query":{ "match_all":{} } }
…………………….. { "_index" : "schools", "_type" : "school", "_id" : "1", "_score" : 1.0, "_source":{ "name":"Central School", "description":"CBSE Affiliation", "street":"Nagan", "city":"paprola", "state":"HP", "zip":"176115", "location": [31.8955385, 76.8380405], "fees":2000, "tags":["Senior Secondary", "beautiful campus"], "rating":"3.5" } } …………………...
このオプションを使うと、統計応答を人間が読みやすい形式(human = trueの場合)またはコンピュータが読みやすい形式(human = falseの場合)に変更できます。例えば、human = trueの場合は、distance_kilometer = 20KM;human = falseの場合、distance_meter = 20000、この場合、他のコンピュータプログラムが応答を使用する必要があります。
field_pathパラメータにそれらを追加することで、少ないフィールドの応答をフィルタリングできます。例えば、
POST /schools/_search?filter_path = hits.total
{ "query":{ "match_all":{} } }
{"hits":{"total":3}}