Elasticsearch
Sök API
Sök…
Introduktion
Med sök-API: n kan du utföra en sökfråga och få tillbaka sökträffar som matchar frågan. Frågan kan antingen tillhandahållas med hjälp av en enkel frågesträng som parameter eller med en begäran.
routing
När du utför en sökning kommer den att sändas till alla index / indexskärmar (round robin mellan kopior). Vilka skärvor som man söker på kan styras genom att ange routingparametern. Till exempel, vid indexering av tweets, kan routingsvärdet vara användarnamnet:
curl -XPOST 'localhost:9200/twitter/tweet?routing=kimchy&pretty' -d'
{
"user" : "kimchy",
"postDate" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}'
Sök med hjälp av förfrågningsorgan
Sökningar kan också göras på elasticsearch med hjälp av en DSL-sökning. Frågeelementet i sökbegäran kan definiera en fråga med hjälp av Query DSL.
GET /my_index/type/_search
{
"query" : {
"term" : { "field_to_search" : "search_item" }
}
}
Flersökning
Alternativet multi_search gör det möjligt för oss att söka efter en fråga i flera fält samtidigt.
GET /_search
{
"query": {
"multi_match" : {
"query": "text to search",
"fields": [ "field_1", "field_2" ]
}
}
}
Vi kan också öka poängen för vissa fält med boost-operatören (^) och använda jokertecken i fältnamnet (*)
GET /_search
{
"query": {
"multi_match" : {
"query": "text to search",
"fields": [ "field_1^2", "field_2*" ]
}
}
}
URI-sökning och markering
En sökbegäran kan utföras rent med en URI genom att tillhandahålla förfrågningsparametrar. Inte alla sökalternativ exponeras när du utför en sökning med det här läget, men det kan vara praktiskt för snabba "curl tests".
GET Index/type/_search?q=field:value
En annan användbar funktion som tillhandahålls är att lyfta fram träffar i dokumenten.
GET /_search
{
"query" : {
"match": { "field": "value" }
},
"highlight" : {
"fields" : {
"content" : {}
}
}
}
I ovanstående fall kommer det specifika fältet att markeras för varje sökträff