Algunas preguntas comunes Elasticsearch el (Actualización)

Tipos de datos

palabras clave y el texto ¿Cuál es la diferencia?

campo de palabras clave para la indexación estructurado de contenidos, tales como direcciones de correo electrónico, nombres de host, código de estado, código postal o la etiqueta.
Normalmente se utiliza para filtrar (encontrar todas las entradas de mi blog, de los que se publica el estado), clasificación y agregación. campo de tipo de palabra clave puede valorar sólo será precisa su búsqueda. texto tipo de datos se utiliza para la búsqueda de texto completo, la palabra será almacenada en el dispositivo de almacenamiento de datos por palabra, frase sería en varias palabras para buscar después de una búsqueda. NA tipo de texto para la clasificación y agregación.

fecha Tipo

Elasticsearch proporcionar tipo de fecha para fecha de procesamiento, pero puesto que no hay tipo de fecha JSON, que se convierte dentro del sello de fecha y hora UTC almacenado (con milisegundos).
Si la fecha se inserta en la inserción de un formato de fecha convencional ( yyyy-MM-ddo yyyy-MM-dd'T'HH:mm:ss.SSSZ), el formato de fecha ES El reconoce automáticamente el conjunto de campo de tipo Date. Si el tipo de campo en el mapeo se ha determinado Date, a continuación, insertar una cadena con formato o sello de fecha (y la cadena de Numerictipo de tiempo) Es se almacenará como un tipo de fecha, pero en el mismo formato cuando la pantalla y de almacenamiento de datos (tiempo de almacenamiento marca de tiempo sello se devuelve, la cadena devuelta es la cadena, pero se recomienda depósito estandarizada hora UTC o marca de tiempo, evitar inconsistencias tipo).

problemas de zona horaria

A: por defecto Elasticsearch hora UTC, es decir, la zona cero, sin especificar cuándo la zona de consulta, la consulta de zona predeterminado a 0:00, y el Distrito Este 8 en el que son pobres 8 horas. yyyy-MM-dd'T'HH:mm:ss.SSSZ, Aquí Zen nombre de la zona horaria UTC.
Es realizan consulta zona de fecha / hora se pueden especificar cuando la polimerización:

//日期范围查询
POST datatypetest/_search
{
  "query": {
    "range": {
      "date3": {
        "gte": "2018-07-05", "lte": "now", "time_zone": "Asia/Shanghai"//这就是东八区(北京时间/中国标准时间) } } } }
//日期聚合
GET my_index/_search?size=0
{
  "aggs": {
    "by_day": {
      "date_histogram": {
        "field": "date", "interval": "day", "time_zone": "Asia/Shanghai" } } } }
//Java获取系统时区id
TimeZone.getDefault().getID()
//Es Java Api日期范围查询
QueryBuilders
                .rangeQuery("your date field")
                .gte("your date from")
                .lte("your date to")
                .timeZone(TimeZone.getDefault().getID());//此处只能设置时区id
//Es Java Api日期聚合查询
AggregationBuilders
                .dateHistogram("your alias")
                .timeZone(DateTimeZone.getDefault());//获取系统默认时区,此处timeZone对象是joda包中的DateTimeZone

Al utilizar Kibana, Kibana conseguir navegador por defecto, distrito hacer cuando formateada de acuerdo con la fecha en la visualización de datos. Sin embargo, el defecto se devuelve con el tiempo UTC DevTools DSL o solicitud de escritura directamente ES, encontrarán menos tiempo durante ocho horas.

Recomienda no modificar el uso de la fecha en que el área Tipo de formato de fecha, todos los datos de zona horaria UTC, esta vez no es fácil ir uniforme equivocado.

La diferencia entre tipos anidados objeto y, cada escenario es lo

ES es el tipo de objeto predeterminado del objeto, el objeto se almacena en el ES JSON anidados se establecerá en el objeto de texto predeterminado. it en el interior anidada convertirá JSON objetos almacenados plana.
Por ejemplo, un json común

{ 
  "region": "US",
  "manager": { 
    "age":     30, "name": { "first": "John", "last": "Smith" } } }

Es se convierte los datos basados ​​internamente aplanadas json

{
  "region":             "US",
  "manager.age":        30,
  "manager.name.first": "John", "manager.name.last": "Smith" }

una matriz anidada de objetos JSON, que permite que los objetos de la matriz puede ser consultada, independientemente uno de otro índice manera. Dado que no existe el concepto de objeto Lucene interna, por lo que es necesario para convertir los datos a una configuración plana simple.
Una matriz anidada de objetos:

{
  "group" : "fans",
  "user" : [ 
    {
      "first" : "John", "last" : "Smith" }, { "first" : "Alice", "last" : "White" } ] }

Es en el interior será convertido:

{
  "group" :        "fans",
  "user.first" : [ "alice", "john" ], "user.last" : [ "smith", "white" ] }

user.first y campos user.last se convierten en campos de valores múltiples, se perderá la correlación entre los datos, resultando en resultados incorrectos.
Esta vez con tipos anidados puede resolver este problema.

investigación

plazo y un partido a lo que es la diferencia?

plazo es una coincidencia exacta, no hay palabra clave de consulta. El partido para la búsqueda de texto completo, las palabras clave de búsqueda de palabras en primer lugar, seguida de búsqueda de texto completo.

obligada, filtro, post_filter ¿Cuál es la diferencia?

debe consultar contexto (contexto de consulta), calcula la puntuación de consulta (documento de relevancia). Filtro de contexto filtro, el cálculo de la puntuación no consulta. Post_filter el resultado de post-filtración, también se filtrará la polimerización. orden de ejecución: Filtro -> agregaciones - post_filter.

contexto de consulta y la diferencia contexto filtro?

debe / debería consultar contexto. parámetros de filtro bool o consulta must_not / filtro constant_score el / contexto consulta de filtro aggretion filtrado para los escenarios.
contexto de consulta calcula el valor de retorno del documento, y el contexto de filtro no calcula el marcador, pero la semántica de este documento partidos sin conocer el cálculo de la correlación. En el contexto de la filtración, es el filtro de almacenamiento en caché se consulta automáticamente para mejorar el rendimiento.

Supongo que te gusta

Origin www.cnblogs.com/snake23/p/12481899.html
Recomendado
Clasificación