tutorial español elk pdf elasticsearch plugins attachment elasticsearch-plugin

español - ¿Cómo indexar un archivo pdf en Elasticsearch 5.0.0 con el complemento ingest-attachment?



elk (1)

Soy nuevo en Elasticsearch y leo aquí https://www.elastic.co/guide/en/elasticsearch/plugins/master/mapper-attachments.html que el complemento de adjuntos mapper está en desuso en elasticsearch 5.0.0.

Ahora intento indexar un archivo pdf con el nuevo complemento de ingestión y cargar el archivo adjunto.

Lo que he intentado hasta ahora es

curl -H ''Content-Type: application/pdf'' -XPOST localhost:9200/test/1 -d @/cygdrive/c/test/test.pdf

pero me sale el siguiente error:

{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"failed to parse"}],"type":"mapper_parsing_exception","reason":"failed to parse","caused_by":{"type":"not_x_content_exception","reason":"Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes"}},"status":400}

Esperaría que el archivo pdf sea indexado y cargado. ¿Qué estoy haciendo mal?

También probé Elasticsearch 2.3.3, pero el complemento de adjuntos mapper no es válido para esta versión y no quiero utilizar ninguna versión anterior de Elasticsearch.


Debe asegurarse de haber creado su tubería de ingesta con:

PUT _ingest/pipeline/attachment { "description" : "Extract attachment information", "processors" : [ { "attachment" : { "field" : "data", "indexed_chars" : -1 } } ] }

Luego puede hacer un PUT no POST a su índice usando la tubería que ha creado.

PUT my_index/my_type/my_id?pipeline=attachment { "data": "e1xydGYxXGFuc2kNCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0DQpccGFyIH0=" }

En tu ejemplo, debería ser algo como:

curl -H ''Content-Type: application/pdf'' -XPUT localhost:9200/test/1?pipeline=attachment -d @/cygdrive/c/test/test.pdf

Recordando que el contenido PDF debe estar codificado en base64.

Espero que te ayude.

Edit 1 Por favor, asegúrese de leer estos, me ayudó mucho:

Ingestión elástica

Complemento de Ingestión

Presentación Ingest

Editar 2

Además, debe tener el complemento de inserción de ingestión instalado.

./bin/elasticsearch-plugin install ingest-attachment

Editar 3

Antes de crear su procesador de ingesta (adjunto), cree su índice , haga un mapa con los campos que usará y asegúrese de tener el campo de datos en su mapa (el mismo nombre del "campo" en su procesador de adjuntos), así que ingiera procesará y completará su campo de datos con su contenido de pdf.

Inserté la opción indexed_chars en el procesador de ingestión , con -1 valor, por lo que puede indexar archivos PDF grandes.

Editar 4

El mapeo debería ser algo así:

PUT my_index { "mappings" : { "my_type" : { "properties" : { "attachment.data" : { "type": "text", "analyzer" : "brazilian" } } } } }

En este caso, uso el filtro brasileño , pero puede eliminarlo o usar el suyo.