2011-10-19 11 views
8

¿Cómo puedo almacenar configuraciones de elasticsearch + mapeos en un archivo (como schema.xml para Solr)? Actualmente, cuando quiero hacer un cambio en mi asignación, tengo que eliminar la configuración de mi índice y comenzar de nuevo. ¿Me estoy perdiendo de algo?¿cómo puedo almacenar configuraciones de elasticsearch + mapeos en un archivo (como schema.xml para Solr)

No tengo un gran conjunto de datos a partir de ahora. Pero en preparación para una gran cantidad de datos que se indexarán, me gustaría poder modificar la configuración y cómo reindexar sin comenzar completamente nuevo cada vez. ¿Es posible? y si lo es, cómo?

Respuesta

16

Estas son realmente muchas preguntas disfrazadas como una sola. Sin embargo:

¿Cómo puedo almacenar la configuración de elasticsearch + mapeos en un archivo (como schema.xml para Solr)?

En primer lugar, la nota, que usted no ha para especificar la asignación de un montón de tipos, tales como fechas, números enteros, o incluso cadenas (cuando el analizador por defecto está bien para usted).

Puede almacenar la configuración y las asignaciones de varias maneras, en Elasticsearch < 1.7:

  1. En el principal elasticsearch.yml file
  2. En un índice template file
  3. En un separate file with mappings

Actualmente, cuando quiero hacer un cambio en mi asignación, tengo que eliminar la configuración de mi índice y comenzar de nuevo. ¿Me estoy perdiendo de algo?

Tiene que volver a indexar los datos cuando cambia la asignación de un campo existente. Una vez que sus documentos están indexados, el motor debe reindexarlos, para usar la nueva asignación.

Tenga en cuenta que puede update index settings, en casos específicos, como number_of_replicas, "sobre la marcha".

Me gustaría poder modificar la configuración y cómo reindexar sin comenzar completamente nuevo cada vez. ¿Es posible? y si lo es, cómo?

Como se ha dicho: usted debe indexar sus documentos, si desea utilizar una nueva asignación para ellos.

Si está agregando, sin cambiar la asignación, puede actualizar las asignaciones, y los documentos nuevos la recogerán cuando se indexen.

+0

Disculpa las múltiples preguntas. Era todo un escenario para mí, ya que no me había replanteado el índice sin comenzar todo el proceso. Gracias por su respuesta. Actualmente estoy modificando mapeos específicamente usando los tokenizadores de NGram y edgeNGram y, en un intento por hacer las cosas bien, tuve que volver a escribirlos. – jbattle

+0

He colocado mis asignaciones + configuraciones dentro de un script de shell para que la creación y configuración de mi índice sea un proceso más rápido. – jbattle

+0

Sí, en la mayoría de los escenarios, tiene sentido ajustar la creación de índice en un procedimiento personalizado (podría ser script de shell, método de clase en Ruby, etc.). Solo quería apuntar a muchas maneras en que ElasticSearch te permite "ajustar" la lógica de asignación/configuración en el nivel del motor de búsqueda. – karmi

0

Desde Elasticsearch 2.0:

Ya no es posible especificar asignaciones de archivos en el directorio de configuración.

Encuentra el enlace de documentación here.

Tampoco es posible almacenar plantillas de índice en la ubicación de configuración (path.conf) en el directorio templates.

El path.conf (/etc/default/elasticsearch por defecto en Ubuntu) almacena ahora sólo las variables de entorno, incluyendo tamaño de la pila, los descriptores de fichero.

Necesita crear sus plantillas con curl.

Si está realmente desesperado, puede crear sus índices y luego hacer una copia de seguridad de su directorio data y luego usar este como su "plantilla" para los nuevos clústeres de Elasticsearch.

Cuestiones relacionadas