Clasificación de búsqueda de combate de Elasticsearch
Directorio de artículos
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 _doc
ordenarlos. Por ejemplo, para devolver el último documento agregado, puede _doc
ordenar 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