ventajas usa tutorial que puerto para logs instalar español elastic desventajas comandos aplicaciones elasticsearch multilingual full-text-indexing

usa - puerto de elasticsearch



Mejores prácticas/experiencias de indexación de elasticsearch (3)

En caso de que otras personas estén buscando respuestas, aquí hay un enlace directo a la documentación en el sitio ElasticSearch: https://www.elastic.co/guide/en/elasticsearch/guide/current/mixed-lang-fields.html

Preguntándose cuáles son las mejores prácticas o experiencias utilizadas para la indexación y búsqueda multilingüe en búsquedas de elastics. Leí una serie de recursos y, en la medida de lo posible, las opciones disponibles para la indexación son:

  1. índice separado por idioma;

  2. tipo de campo múltiple para el campo multilingüe;

  3. Campo separado para todos los idiomas posibles.

Entonces, me pregunto cuáles son los efectos secundarios para elegir una u otra de estas opciones (o alguna otra que me haya perdido). Supongo que tener más índices realmente no ralentiza el clúster (si no es un gran número de idiomas), así que no estoy seguro de qué obtendría al elegir 2 o 3, excepto quizás un mantenimiento más fácil.

Cualquier ayuda bienvenida!



Una pregunta un poco vieja, pero la información podría ser útil de todos modos. La estructura del índice / mapeo depende principalmente de su caso de uso.
¿Necesita usar todos los idiomas simultáneamente o solo se usa un idioma a la vez?

  • Opción 1 : sitio web en varios idiomas, por ejemplo, los usuarios solo ven y buscan en el idioma actual que han elegido. En este caso, mi experiencia es que index-per-lang sería una buena solución, especialmente si necesita poder agregar y eliminar idiomas fácilmente. La cantidad de datos se separa entre los índices (beneficio de rendimiento). Fácil configuración de los analizadores para cada idioma, especialmente si su configuración difiere solo por el nombre del idioma. Personalmente estoy usando esta opción para uno de mis proyectos.

Notas generales para las opciones 2 y 3 : el uso de una de esas opciones le brinda la posibilidad de calificar los documentos de manera diferente, según el idioma, ya que puede definir la puntuación para cada campo de idioma. Puede agregar nuevos campos a una asignación si necesita agregar más idiomas, pero no hay manera de eliminar o cambiar los campos existentes. Por lo tanto, tendrá que reindexar todo su contenido y configurar la propiedad para que el idioma eliminado se vacíe. Deberá agregar nuevos analizadores para cada nuevo idioma. Pero es necesario cerrar el índice primero y abrirlo después de realizar los cambios.

  • Opción 2 : si necesita buscar en todos los idiomas a la vez, el campo múltiple le brinda el acceso más fácil, ya que puede abordar todos sus subcampos a la vez:

"book_title": { "type": "multi_field", "fields": { "english": { "type": "string" }, "german": { "type": "string" }, "italian": { "type": "string" }, } }

Aquí puede buscar en un idioma específico (por ejemplo, " book_title.english ") o en todos los idiomas (usando " book_title "). Debes tener cuidado de no actualizar el campo usando el nombre " book_title ", sino usando " book_title. [Idioma] ". El uso de " book_title " conducirá a la actualización de todos los subcampos con datos idénticos (que probablemente no sea lo que desea)

  • Opción 3 : campos completamente separados: deberá colocarlos todos en la consulta de búsqueda si necesita buscar como en la opción 2, más seguro en términos de indexación ya que no puede sobrescribir todos los idiomas por error

  • Idea para la opción 4 - usar tipo por idioma : se puede usar si solo tiene un tipo de documentos. Puedes tener diferentes campos por idioma. No es útil si tiene varios tipos de documentos.