el desarrollo de servicios de fondo de los artículos de fondo Elasticsearch ---- consultas y consulta por lotes

consultas de profundidad y consulta por lotes

la profundidad de paginación

En la paginación consulta, uso y consulta tamaño y palabras clave desde el mismo nivel. Pero cuando se inicia a partir de 9999 ya partir del tamaño 10 es el tiempo sin duda se quejará.
Porque hay una max_result_window controla los parámetros, el valor predeterminado es 10000. Si su empresa tiene que ser ultra profundas esas consultas, se puede modificar este valor

GET     /shop/_settings         #  用于查询相关的设置

PUT     /shop/_settings         #  设置相关参数
{ 
    "index.max_result_window": "20000"
}

Por supuesto, también se puede usar el desplazamiento de desplazamiento buscar, ahorrando tiempo y fijar el ancla

  • desplazamiento = 1 m, el equivalente de la sesión es un tiempo de la sesión, la celebración contexto de búsqueda de tiempo es de 1 minuto.
POST    /shop/_search?scroll=1m
{
    "query": { 
    	"match_all": {
    	}
    },  
    "sort" : ["_doc"], 
    "size":  5
}
# 上面的返回值会有一个_scroll_id的属性,将其copy

POST    /_search/scroll
{
    "scroll": "1m", 
    "scroll_id" : "your last scroll_id"  # 贴在这个点发
}

Las operaciones por lotes

consulta por lotes _mget

# 之前的多id查询是这样的,这种是检索类的查询将返回相关的max_score和hint等元数据
POST /shop/_doc/_search
{
	"query":{
		"ids":{
			"type":"_doc",
			"values":["1001","1002","1003"]
		}
	}
}

# 但是_mget这个就是返回一个个doc,并且如果没有存在要查询的id时,也会显示一个json对象,里面有个属性是found会显示false,而有的id的found就是true
POST /shop/_doc/_mget
{
	"ids":["1001","1002","1003"]
}

la operación por lotes a granel
y el estilo de entrada convencional es un poco diferente. No a formato JSON, el coche tendrá que cortar cada línea (incluyendo la última línea debe ser auto)

{ action: { metadata }}\n
{ request body        }\n
{ action: { metadata }}\n
{ request body        }\n
...
  • { action: { metadata }}Tipo representa una operación por lotes, se puede añadir, eliminar o modificar
  • \nEstá al final de cada línea debe llenar un pliego de condiciones, incluyendo cada fila de la última línea debe escribir para el ES analíticos
  • { request body }Está solicitando cuerpo, adiciones y modificaciones a las necesidades operativas, que no es necesario eliminar la operación

acción debe ser una de las siguientes opciones:

  • crear: Si no existe el documento, crear. No hay error. error anormal no afecta a otras operaciones.
  • Índice: crear un nuevo documento o reemplazar un documento existente.
  • actualización actualiza una parte del documento.
  • Eliminar: eliminar un documento.
crear nuevos documentos
POST    /_bulk
{"create": {"_index": "shop2", "_type": "_doc", "_id": "2001"}}
{"id": "2001", "nickname": "name2001"}
{"create": {"_index": "shop2", "_type": "_doc", "_id": "2002"}}
{"id": "2002", "nickname": "name2002"}
{"create": {"_index": "shop2", "_type": "_doc", "_id": "2003"}}
{"id": "2003", "nickname": "name2003"}

# 也可以将index和type写在url上面
POST    /shop/_doc/_bulk
{"create": {"_id": "2003"}}
{"id": "2003", "nickname": "name2003"}
{"create": {"_id": "2004"}}
{"id": "2004", "nickname": "name2004"}
{"create": {"_id": "2005"}}
{"id": "2005", "nickname": "name2005"}

Índice crear o sobrescribir el documento original
# 有就更新,没有就创建。而create的话,有就报错
POST    /shop/_doc/_bulk
{"index": {"_id": "2004"}}
{"id": "2004", "nickname": "index2004"}
{"index": {"_id": "2007"}}
{"id": "2007", "nickname": "name2007"}
{"index": {"_id": "2008"}}
{"id": "2008", "nickname": "name2008"}

actualización de parte de los campos del documento
POST    /shop/_doc/_bulk
{"update": {"_id": "2004"}}
{"doc":{ "id": "3004"}}
{"update": {"_id": "2007"}}
{"doc":{ "nickname": "nameupdate"}}

Eliminar Eliminar
# 不用跟request body
POST    /shop/_doc/_bulk
{"delete": {"_id": "2004"}}
{"delete": {"_id": "2007"}}

lotes integral varias operaciones
POST    /shop/_doc/_bulk
{"create": {"_id": "8001"}}
{"id": "8001", "nickname": "name8001"}
{"update": {"_id": "2001"}}
{"doc":{ "id": "20010"}}
{"delete": {"_id": "2003"}}
{"delete": {"_id": "2005"}}

Tip Oficial: Cada cluster con un lote de su propio umbral máximo rendimiento, cuando se alcanza este umbral (número de lote de las operaciones), el rendimiento se reducirá

Publicados 118 artículos originales · elogios ganado 16 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_39702831/article/details/105000309
Recomendado
Clasificación