Elasticsearch
検索API
サーチ…
前書き
検索APIを使用すると、検索クエリを実行し、クエリに一致する検索ヒットを戻すことができます。クエリは、単純なクエリ文字列をパラメータとして使用するか、またはリクエスト本文を使用して提供できます。
ルーティング
検索を実行すると、すべてのインデックス/インデックスシャードにブロードキャストされます(レプリカ間のラウンドロビン)。どのシャードが検索されるかは、ルーティングパラメータを指定することで制御できます。たとえば、ツイートのインデックスを作成する場合、ルーティング値にはユーザー名を使用できます。
curl -XPOST 'localhost:9200/twitter/tweet?routing=kimchy&pretty' -d'
{
"user" : "kimchy",
"postDate" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}'
リクエストボディを使用して検索する
検索DSLを使用してelasticsearchで検索を行うこともできます。検索要求本体内のquery要素によって、Query DSLを使用してクエリを定義することができます。
GET /my_index/type/_search
{
"query" : {
"term" : { "field_to_search" : "search_item" }
}
}
マルチ検索
multi_searchオプションを使うと、一度に複数のフィールドでクエリを検索することができます。
GET /_search
{
"query": {
"multi_match" : {
"query": "text to search",
"fields": [ "field_1", "field_2" ]
}
}
}
ブースト演算子(^)を使用して特定のフィールドのスコアを上げたり、フィールド名(*)にワイルドカードを使用することもできます
GET /_search
{
"query": {
"multi_match" : {
"query": "text to search",
"fields": [ "field_1^2", "field_2*" ]
}
}
}
URI検索、ハイライト
検索要求は、要求パラメータを提供することによってURIを使用して純粋に実行することができる。このモードを使用して検索を実行すると、すべての検索オプションが表示されるわけではありませんが、すばやく「カールテスト」に便利です。
GET Index/type/_search?q=field:value
提供されるもう1つの便利な機能は、ドキュメントの一致ヒットを強調表示することです。
GET /_search
{
"query" : {
"match": { "field": "value" }
},
"highlight" : {
"fields" : {
"content" : {}
}
}
}
上記の場合、検索ヒットごとに特定のフィールドが強調表示されます
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow