Ricerca…


introduzione

L'API di ricerca consente di eseguire una query di ricerca e ottenere risultati di ricerca corrispondenti alla query. La query può essere fornita utilizzando una semplice stringa di query come parametro o utilizzando un corpo della richiesta.

Routing

Quando si esegue una ricerca, verrà trasmesso a tutti gli indici / indici (round robin tra le repliche). È possibile controllare quali frammenti verranno ricercati fornendo il parametro di instradamento. Ad esempio, durante l'indicizzazione dei tweet, il valore di routing può essere il nome utente:

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

Cerca usando il corpo della richiesta

Le ricerche possono essere eseguite anche su elasticsearch utilizzando un DSL di ricerca. L'elemento di query all'interno del corpo della richiesta di ricerca consente di definire una query utilizzando la query DSL.

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

Ricerca multipla

L'opzione multi_search ci consente di cercare una query in più campi contemporaneamente.

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

Possiamo anche aumentare il punteggio di alcuni campi usando l'operatore boost (^) e usare i caratteri jolly nel nome del campo (*)

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

Ricerca URI e evidenziazione

Una richiesta di ricerca può essere eseguita utilizzando esclusivamente un URI fornendo i parametri di richiesta. Non tutte le opzioni di ricerca vengono esposte quando si esegue una ricerca utilizzando questa modalità, ma può essere utile per eseguire rapidamente "test di arricciatura".

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

Un'altra utile funzione fornita è evidenziare i risultati della partita nei documenti.

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

Nel caso precedente, il campo particolare verrà evidenziato per ogni hit di ricerca



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow