Zoeken…


Invoering

Met de zoek-API kunt u een zoekopdracht uitvoeren en zoekhits terugkrijgen die overeenkomen met de zoekopdracht. De query kan worden verstrekt met behulp van een eenvoudige queryreeks als parameter of met behulp van een aanvraagtekst.

routing

Wanneer een zoekopdracht wordt uitgevoerd, wordt deze uitgezonden naar alle index / indices-scherven (round robin tussen replica's). Op welke shards wordt gezocht, kan worden bepaald door de routeringsparameter op te geven. Bij het indexeren van tweets kan de routeringswaarde bijvoorbeeld de gebruikersnaam zijn:

curl -XPOST 'localhost:9200/twitter/tweet?routing=kimchy&pretty' -d'
{
    "user" : "kimchy",
    "postDate" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}'

Zoeken met behulp van aanvraagtekst

Zoekopdrachten kunnen ook worden uitgevoerd op elastiek zoeken met behulp van een zoek-DSL. Met het query-element in de hoofdtekst van de zoekopdracht kunt u een zoekopdracht definiëren met behulp van de Query-DSL.

GET /my_index/type/_search
{
    "query" : {
        "term" : { "field_to_search" : "search_item" }
    }
}

Meer zoeken

Met de optie multi_search kunnen we in meerdere velden tegelijk naar een zoekopdracht zoeken.

GET /_search
{
  "query": {
    "multi_match" : {
      "query":    "text to search", 
      "fields": [ "field_1", "field_2" ] 
    }
  }
}

We kunnen ook de score van bepaalde velden verhogen met de boost-operator (^) en jokertekens gebruiken in de veldnaam (*)

GET /_search
    {
      "query": {
        "multi_match" : {
          "query":    "text to search", 
          "fields": [ "field_1^2", "field_2*" ] 
        }
      }
    }

URI zoeken en markeren

Een zoekopdracht kan puur worden uitgevoerd met behulp van een URI door aanvraagparameters op te geven. Niet alle zoekopties worden weergegeven bij het uitvoeren van een zoekopdracht met deze modus, maar het kan handig zijn voor snelle "krultests".

GET Index/type/_search?q=field:value

Een andere handige functie is het markeren van de treffers in de documenten.

GET /_search
{
    "query" : {
        "match": { "field": "value" }
    },
    "highlight" : {
        "fields" : {
            "content" : {}
        }
    }
}

In het bovenstaande geval wordt het specifieke veld gemarkeerd voor elke zoekactie



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow