Elasticsearch
Wyszukaj API
Szukaj…
Wprowadzenie
Interfejs API wyszukiwania umożliwia wykonanie zapytania wyszukiwania i odzyskanie wyników wyszukiwania pasujących do zapytania. Kwerendę można podać za pomocą prostego ciągu zapytania jako parametru lub za pomocą treści żądania.
Wytyczanie
Podczas wyszukiwania zostanie ono rozesłane do wszystkich odłamków indeksu / indeksów (okrągły robin między replikami). Które odłamki będą wyszukiwane, można kontrolować, podając parametr routingu. Na przykład podczas indeksowania tweetów wartością routingu może być nazwa użytkownika:
curl -XPOST 'localhost:9200/twitter/tweet?routing=kimchy&pretty' -d'
{
"user" : "kimchy",
"postDate" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}'
Wyszukaj za pomocą treści żądania
Wyszukiwania można również wykonywać w trybie wyszukiwania elastycznego za pomocą DSL wyszukiwania. Element zapytania w treści żądania wyszukiwania umożliwia zdefiniowanie zapytania za pomocą DSL zapytania.
GET /my_index/type/_search
{
"query" : {
"term" : { "field_to_search" : "search_item" }
}
}
Wyszukiwanie wielokrotne
Opcja multi_search pozwala nam wyszukać zapytanie w wielu polach jednocześnie.
GET /_search
{
"query": {
"multi_match" : {
"query": "text to search",
"fields": [ "field_1", "field_2" ]
}
}
}
Możemy również zwiększyć wynik niektórych pól za pomocą operatora doładowania (^) i użyć symboli wieloznacznych w nazwie pola (*)
GET /_search
{
"query": {
"multi_match" : {
"query": "text to search",
"fields": [ "field_1^2", "field_2*" ]
}
}
}
Wyszukiwanie URI i wyróżnianie
Żądanie wyszukiwania można wykonać wyłącznie przy użyciu identyfikatora URI, podając parametry żądania. Nie wszystkie opcje wyszukiwania są widoczne podczas wyszukiwania w tym trybie, ale może być przydatne do szybkich „testów zwijania”.
GET Index/type/_search?q=field:value
Inną przydatną funkcją jest wyróżnianie trafień dopasowania w dokumentach.
GET /_search
{
"query" : {
"match": { "field": "value" }
},
"highlight" : {
"fields" : {
"content" : {}
}
}
}
W powyższym przypadku konkretne pole zostanie podświetlone dla każdego trafienia wyszukiwania