2017-02-10 5 views

Répondre

2

Vous pouvez utiliser le plug-in ElasticSearch "Ingest pièce jointe", qui utilise Tika pour traiter les indigènes (PDF, XLS, PST, etc ...):

https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest-attachment.html

le plug-in « Ingest pièce jointe » est anciennement nommé « Mapper-Attachments » plug-in, vous pouvez trouver de l'aide des mots-clés de l'ancien nom:

https://www.elastic.co/guide/en/elasticsearch/plugins/current/mapper-attachments.html

Ces plugins vous permettent de passer le PST encodé en base64 directement à ElasticSearch, et ES analysera et indexera automatiquement les données derrière la scène. Si vous voulez quelque chose de personnalisé, je suggère d'utiliser l'un des nombreux projets github qui lisent les fichiers PST, puis d'envoyer les données à ElasticSearch dans le mappage de document souhaité. Il existe de nombreux projets de lecteurs PST github, alors choisissez celui qui vous convient le mieux (java, C#, etc ...). Github suggestions de termes de recherche: libpst, pst reader

Vous pouvez également écrire un analyseur personnalisé pour Apache Tika, et l'utiliser à la place d'une bibliothèque de lecteur PST. Documentation sur l'utilisation qui peut être trouvé ici:

https://tika.apache.org/1.6/parser.html

exemple Java pour base64 encoder un fichier à la chaîne:

FileInputStream fileInputStreamReader = new FileInputStream(file); 
byte[] bytes = new byte[(int)file.length()]; 
fileInputStreamReader.read(bytes); 
String encodedfile = Base64.encodeBase64(bytes).toString(); 

passer la chaîne de paramètre nomFichierCodé résultant à un appel PUT comme le montre cet article :

https://www.elastic.co/guide/en/elasticsearch/plugins/current/using-ingest-attachment.html

+0

merci cher @erik j'ai quelques questions: comment identifier si mon fichier est base64? comment utiliser ce plugin? Maintenant je l'ai installé mais je ne sais pas comment l'utiliser? Je suis très nouveau à élastique. je pourrais charger un fichier json et interroger cela en élastique, mais je ne sais pas comment cette action pour le fichier pst? –

+0

Les fichiers d'encodage Base64 en Java peuvent être trouvés ici: http://stackoverflow.com/questions/13109588/base64-encoding-in-java Voici plusieurs exemples pour charger des données avec des appels PUT au plugin Ingest: https: // www .elastic.co/guide/fr/elasticsearch/plugins/master/en utilisant-ingest-attachment.html – Erik

+0

Erik je pense qu'il y a une erreur. Je ne veux pas encoder mon fichier je veux juste identifier si elle est base64 ou non. également le deuxième lien j'ai déjà lu cela, mais il ne couvre pas les informations de chargement du fichier à l'index, –