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



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow