Fscrawler and Elasticsearch Parsing ingested document/ stop at 1st value groked


(Djamel Chatti) #1

Bonjour, Le projet que j'ai mis en place consiste à récupérer les documents contenus dans un dossier, puis à les indexer sur Elasticsearch. Pour cela j'utilise la solution FsCrawler. Le but de mon projet est de tracer les données contenues dans les documents, mais seulement des données telles que les emails, IP, numéros de téléphone etc ...
Pour cela, j'ai codé une pipeline via un ingest pipeline.
Cependant, le pipeline s'arrête à la première correspondance et ne retourne que la première valeur. Certains de mes documents peuvent contenir plus d'adresse IP ou de courrier électronique et je voudrais qu'ils soient tous indexés. Vous trouverez ci-joint mon code, idéalement je voudrais insérer une sorte de break_on_match. est il possible d'analyser la totalité d'un document sans que le grok ne s'arrete à la première valeur?

Hello, The project I set up is to retrieve the documents contained in a folder and then index them to Elasticsearch. The purpose of my project is to trace the data contained in documents, but only data such as emails, IP, phone numbers etc ...
For this I coded a pipeline via ingest pipeline.
However the pipeline stops at the first match and goes back only the first value. Some of my documents may contain more IP or email and I would like them all to be indexed. You will find attached my code, ideally I would like to insert a kind of break_on_match.

PUT _ingest/pipeline/pipeline1
{
"description": "doc_pipeline",
"processors": [
{
"grok": {
"trace_match": true,
"field": "content",
"ignore_missing": true,
"patterns":
[
"%{DATA}%{IP:ip_addr}",
"%{DATA}%{Mail:email}",
"%{DATA}%{Telephone:telephone}"
],
"pattern_definitions": {
"Mail": "%{USER}@%{HOSTNAME}",
"Telephone": "^[0-9]{10}$"
},
"on_failure": [
{
"set": {
"field": "Data ",
"value": " données détectées "
}
}
]
},
"remove":
{ "field": "content" } } ] }

Thanks you very much


(David Pilato) #2

Oui. C'est en effet comment fonctionne grok. Dès qu'un pattern correspond, grok stoppe car après tout, ça matche....

est il possible d'analyser la totalité d'un document sans que le grok ne s'arrete à la première valeur?

Non. Mais du coup, je pense que tu pourrais faire plusieurs grok successifs avec des on_failure vides de façon à ne pas stopper sur les erreurs du coup.


(system) #3

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.