Búsqueda avanzada de ElasticSearch

  Continuando con el capítulo anterior sobre recuperación básica, en el blog del capítulo anterior, inserté muchos datos en ES, y luego realizaré algunas operaciones avanzadas en base a los datos anteriores.
  La consulta avanzada de ES tiene su propio lenguaje- QueryDSL
  ES proporciona un DSL de estilo JSON que puede ejecutar consultas, llamado QueryDSL. Este lenguaje es muy completo, pero un poco más complicado. Experimentemos primero.
Inserte la descripción de la imagen aquí
  Puede ver que las consultas de QueryDSL envían solicitudes a través de obtener y llevar datos json., Estos datos json contienen nuestras condiciones de consulta, y su formato de sintaxis es el siguiente

{
    
    
	查询名1:{
    
    
		条件1:值1
	},
	查询名2:{
    
    
		条件2:值2
	}.....
}

búsqueda de coincidencia de segmentación de palabras coincidentes

  La consulta de coincidencia realizará una coincidencia de segmentación de palabras en las condiciones de recuperación, siempre que los datos coincidan con uno de los caracteres, se consultará y, finalmente, se devolverá de acuerdo con la puntuación.

# 语法格式
# 查询每个字段值为多少的数据,支持模糊查询
GET bank/_search  # 请求体
{
    
    
  "query": {
    
    	# 查询
    "match": {
    
    	# 匹配查询
      "FIELD": "TEXT"	# 字段:值
    }
  }
}

Inserte la descripción de la imagen aquí

match_phrase concordancia de frase

  match_phrase recuperará el valor de la condición de recuperación como un todo

GET bank/_search
{
    
    
  "query": {
    
    
    "match_phrase": {
    
    
      "FIELD": "PHRASE"
    }
  }
}

Inserte la descripción de la imagen aquí

coincidencia de múltiples campos de múltiples coincidencias

  Consultar datos que contengan un determinado valor en varios campos y realizar la comparación de segmentación de palabras en las condiciones de la consulta

GET bank/_search
{
    
    
  "query": {
    
    
    "multi_match": {
    
    
      "query": "",	# 查询条件
      "fields": []	# 匹配的字段
    }
  }
}

Inserte la descripción de la imagen aquí

consulta compuesta bool

  La consulta compuesta puede combinar varias condiciones de consulta, lo que equivale a la condición y en mysql, y todas las condiciones deben cumplirse al realizar la consulta.

GET bank/_search
{
    
    
  "query": {
    
    
    "bool": {
    
    
      "must": [ # 必须满足这个条件
        {
    
    }
      ],
      "must_not": [ # 必须不是这个条件
        {
    
    }
      ],
      "should": [ # 可以包含这个条件
        {
    
    }
       ]
       .....
  }
}

Inserte la descripción de la imagen aquí

consulta de coincidencia de término

  El término y la coincidencia pueden hacer una coincidencia exacta. La diferencia es que el término no puede realizar una consulta aproximada. El término consultará el valor de la condición de recuperación en su conjunto. Sin embargo, ES tiene problemas de análisis de datos al almacenar texto, lo que equivale al almacenamiento de segmentación de palabras. Por lo tanto, el término no puede encontrar datos cuando se consultan varios textos. Se recomienda utilizar el término cuando se realizan consultas que no son de texto.

GET bank/_search
{
    
    
  "query": {
    
    
    "term": {
    
    
      "FIELD": {
    
    
        "value": "VALUE"
      }
    }
  }
}

Inserte la descripción de la imagen aquí

agregaciones

  La agregación proporciona la capacidad de agrupar y extraer datos de los datos. El método de agregación más simple es aproximadamente equivalente a las funciones de agregación sql group by y sql.

GET bank/_search
{
    
    
  "aggs": {
    
    
    "NAME": {
    
    
      "AGG_TYPE": {
    
    }
    }
  }
}

  Ejemplo 1: Busque la distribución por edad y la edad promedio de todas las personas cuya dirección contenga mill.
Inserte la descripción de la imagen aquí
  Ejemplo 2: Agregue por edad y solicite el salario promedio de estos grupos de edad.
Inserte la descripción de la imagen aquí
  Ejemplo 3: Consulte todas las distribuciones de edad y el promedio de M y F en el grupo de edad. Salario y salario medio global
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_45481406/article/details/112548550
Recomendado
Clasificación