English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch API Ricerca

Questa API viene utilizzata per cercare contenuti in Elasticsearch. Gli utenti possono cercare inviando una richiesta GET con una stringa di ricerca come parametro o possono pubblicare la query nel corpo della richiesta.

Molti indici

Elasticsearch ci permette di cercare tutti gli indici o alcuni indici specifici in cui esistono documenti. Ad esempio, se dobbiamo cercare tutti i documenti con il nome che contiene "central", possiamo eseguire l'operazione seguente:

GET /_all/_search?q=city:paprola

Quando eseguiamo il codice sopra, otteniamo la seguente risposta-

{
   "took": 33,
   "timed_out": false,
   "_shards": {
      "total": 7,
      "successful": 7,
      "skipped": 0,
      "failed": 0
   },
   "hits": {
      "total": {
         "value": 1,
         "relation": "eq"
      },
      "max_score": 0.9808292,
      "hits": [
         {
            "_index": "schools",
            "_type": "school",
            "_id": "5",
            "_score": 0.9808292,
            "_source": {
               "name": "Central School",
               "description": "CBSE Affiliation",
               "street": "Nagan",
               "city": "paprola",
               "state": "HP",
               "zip": "176115",
               "location": [
                  31.8955385,
                  76.8380405
               ],
               "fees": 2200,
               "tags": [
                  "Senior Secondary",
                  "beautiful campus"
               ],
               "rating": "3.3"
            }
         }
      ]
   }
}

Ricerca URI

Possiamo passare molti parametri attraverso l'identificatore risorsa (URI) durante l'operazione di ricerca-

NumeroParametri e descrizioni
1

Q

Questo parametro viene utilizzato per specificare la stringa di query

2

lenient

Questo parametro viene utilizzato per specificare la stringa di query. Se impostato su true, può ignorare gli errori basati su Formatbased. Per impostazione predefinita è falso.

3

fields

Questo parametro viene utilizzato per specificare la stringa di query

4

sort

Possiamo ottenere i risultati ordinati utilizzando questo parametro, i valori possibili sono fieldName, fieldName:asc/ fieldName:desc

5

timeout

Possiamo utilizzare questo parametro per limitare il tempo di ricerca e la risposta contiene solo le hit specificate nel tempo.

6

terminate_after

Possiamo limitare la risposta alle documenti di una quantità specifica per ogni shard, e la ricerca si interromperà anticipatamente quando si raggiunge lo shard. Per impostazione predefinita, non c'è un termin_after.

7

from

Indice di partenza dell'indice delle hit da restituire. Il valore predefinito è 0.

8

size

Rappresenta il numero di hit da restituire, il valore predefinito è 10.

Ricerca nel corpo della richiesta

Possiamo anche utilizzare un DSL di query nella richiesta del corpo per specificare la query e molti esempi sono stati forniti nei capitoli precedenti. Ecco un esempio del genere-

POST /schools/_search
{
   "query": {
      "query_string": {
         "query": "up"
      }
   }
}

Quando eseguiamo il codice sopra, otteniamo la seguente risposta-

{
   "took": 11,
   "timed_out": false,
   "_shards": {
      "total": 1,
      "successful": 1,
      "skipped": 0,
      "failed": 0
   },
   "hits": {
      "total": {
         "value": 1,
         "relation": "eq"
      },
      "max_score": 0.47000363,
      "hits": [
         {
            "_index": "schools",
            "_type": "school",
            "_id": "4",
            "_score": 0.47000363,
            "_source": {
               "name": "City Best School"
               "description": "ICSE",
               "street": "West End",
               "city": "Meerut",
               "state": "UP",
               "zip": "250002",
               "location": [
                  28.9926174,
                  77.692485
               ],
               "fees": 3500,
               "tags": [
                  "fully computerized"
               ],
               "rating": "4.5"
            }
         }
      ]
   }
}