Clasificación de búsqueda de combate de Elasticsearch

Clasificación de búsqueda de combate de Elasticsearch

1. Orden predeterminado

Los ES se clasifican según la relevancia de las consultas y los documentos. De forma predeterminada, se ordena en orden descendente por puntuación y busca 自行车documentos que contengan palabras clave en el campo del título :

GET website/_search
{
    
    
    "query":{
    
    
        "match_phrase":{
    
    
            "title":"自行车"
        }
    }
}

Equivalente a

GET website/_search
{
    
    
  "query": {
    
    
    "match_phrase": {
    
    
      "title": "自行车"
    }
  },
  "sort": [
    {
    
    
      "_score": {
    
    
        "order": "desc"
      }
    }
  ]
}

Para match_all, dado que solo se devuelven todos los documentos, no se requiere puntuación y el orden de los documentos es el orden de adición de documentos. Si necesita cambiar el orden de los documentos de la consulta match_all, puede _docordenarlos. Por ejemplo, para devolver el último documento agregado, puede _docordenar en orden descendente y establecer el número de documentos devueltos en 1. El comando es el siguiente:

GET website/_search
{
    
    
  "size": 1,
  "query": {
    
    
    "match_all": {
    
    }
  },
  "sort": [
    {
    
    
      "_doc": {
    
    
        "order": "desc"
      }
    }
  ]
}

2. Clasificación de campos múltiples

ES también admite la clasificación de campos múltiples, de la siguiente manera: primero en orden descendente por puntuación y luego en orden descendente por tiempo.

GET website/_search
{
    
    
  "query": {
    
    
    "match_phrase": {
    
    
      "title": "自行车"
    }
  },
  "sort": [
    {
    
    
      "_score": {
    
    
        "order": "desc"
      }
    },
    {
    
    
      "indexAt": {
    
    
        "order": "desc"
      }
    }
  ]
}

3. Clasificación por distancia

Consultar ciudades dentro de los 500 km de Tianjin y ordenarlas en orden ascendente de distancia desde Tianjin:

{
    
    
  "query": {
    
    
    "bool": {
    
    
      "must": {
    
    
        "match_all": {
    
    }
      },
      "filter": {
    
    
        "geo_distance": {
    
    
          "distance": "500km",
          "location": {
    
    
            "lat": "38.993443",
            "lon": "117.158558"
          }
        }
      }
    }
  },
  "sort": [
    {
    
    
      "_geo_distance": {
    
    
        "location": {
    
    
          "lat": "38.993443",
          "lon": "117.158558"
        },
        "unit": "km"
      }
    }
  ]
}

4. Sígueme

Buscar en la cuenta pública de WeChat: el camino hacia una arquitectura java sólida
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/dwjf321/article/details/103961662
Recomendado
Clasificación