Vous devez modifier les paramètres de l'analyseur de votre index.
Pour le modèle JSON que vous avez présenté, vous devez disposer d'un char_filter et d'un tokenizer qui suppriment les éléments JSON, puis les segmentent en fonction de vos besoins.
Votre analyseur doit contenir un tokenizer et un char_filter comme ceux-ci ici:
{
"tokenizer" : {
"type": "pattern",
"pattern": ","
},
"char_filter" : [ {
"type" : "mapping",
"mappings" : [ "{ => ", "} => ", "\" => " ]
} ],
"text" : [ "{\"Status\":\"0\",\"Time\":\"2017-10-3 16:39:58.591\"}" ]
}
Explication: le char_filter supprimera les caractères: { } "
. Le tokenizer sera tokenize par la virgule.
Ceux-ci peuvent être testés à l'aide de l'API Analyze. Si vous exécutez la JSON ci-dessus contre cette API, vous obtenez ces jetons:
{
"tokens" : [ {
"token" : "Status:0",
"start_offset" : 2,
"end_offset" : 13,
"type" : "word",
"position" : 0
}, {
"token" : "Time:2017-10-3 16:39:58.591",
"start_offset" : 15,
"end_offset" : 46,
"type" : "word",
"position" : 1
} ]
}
Le premier jeton ("Status:0"
) qui est récupéré par l'API Analyser est celui que vous utilisez dans votre recherche.