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