update index elastic elasticsearch elasticsearch-bulk

update - post index elasticsearch



Elasticsearch Bulk API-Índice vs Crear/Actualizar (3)

La respuesta corta: No, no hay desventaja.

Los puntos finales de creación y actualización son casos especiales. Con create no quieres hacer nada si el documento ya está allí. Con la actualización, puede proporcionar menos datos. Si no tiene todos los datos del documento, solo puede agregar algunos campos. También puede asegurarse de que el documento solo esté indexado en caso de que ya esté allí con la actualización.

Estoy utilizando la API masiva de Elasticsearch para crear o actualizar documentos.

Realmente sé si son creaciones o actualizaciones, pero puedo simplificar mi código simplemente haciendo que todos los index , o "actualizaciones" en el sentido de SQL.

¿Hay alguna desventaja en el uso del index (y dejar que ES lo descubra) sobre el uso de la create y update más explícitas?


No podrás usar el índice para todo. Según los documentos :

índice agregará o reemplazará un documento según sea necesario

Además, si está actualizando un documento, podría valer la pena agregar el indicador ''doc_as_upsert''. Más información here y here


Si está enviando create , debe asegurarse de que el documento aún no existe en su índice, de lo contrario la llamada fallará, mientras que el envío del mismo documento con el index siempre tendrá éxito.

Luego, si por motivos de rendimiento, sabe que creará un documento (con create o index ) y luego solo actualizará solo unas pocas propiedades, entonces el uso de la update podría tener sentido.

De lo contrario, si siempre está enviando documentos completos, usaría el index todo el tiempo, tanto para crear como para actualizar. Cada vez que ve una acción de index , ES creará el documento si no existe o lo reemplazará si existe, pero la llamada siempre tendrá éxito.