Buscar..


Introducción

La API de búsqueda le permite ejecutar una consulta de búsqueda y recuperar resultados de búsqueda que coincidan con la consulta. La consulta puede proporcionarse utilizando una cadena de consulta simple como parámetro o utilizando un cuerpo de solicitud.

Enrutamiento

Al ejecutar una búsqueda, se transmitirá a todos los fragmentos de índice / índices (round robin entre réplicas). Los fragmentos en los que se buscará pueden controlarse proporcionando el parámetro de enrutamiento. Por ejemplo, al indexar tweets, el valor de enrutamiento puede ser el nombre de usuario:

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

Buscar usando el cuerpo de solicitud

Las búsquedas también se pueden hacer en elasticsearch usando un DSL de búsqueda. El elemento de consulta dentro del cuerpo de la solicitud de búsqueda permite definir una consulta usando el DSL de consulta.

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

Búsqueda múltiple

La opción multi_search nos permite buscar una consulta en varios campos a la vez.

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

También podemos aumentar la puntuación de ciertos campos utilizando el operador de aumento (^) y usar comodines en el nombre del campo (*)

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

Búsqueda de URI, y resaltado

Una solicitud de búsqueda puede ejecutarse simplemente utilizando un URI proporcionando parámetros de solicitud. No todas las opciones de búsqueda están expuestas al ejecutar una búsqueda en este modo, pero puede ser útil para "pruebas de curvatura" rápidas.

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

Otra característica útil proporcionada es resaltar los éxitos de coincidencia en los documentos.

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

En el caso anterior, el campo particular se resaltará para cada golpe de búsqueda



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow