2016-10-17 1 views
0

J'ai besoin d'aide sur une requête de recherche! J'ai un nombre de messages inférieur à 'n' dans mon kibana et je veux extraire seulement une chaîne "arnold-123-20" dans le champ de message ci-dessous alors que hypen (-) est ignoré ma recherche et aussi en horodatage le nombre (20) obtient apparié ce qui est faux et je dois ignorer cela.Dans KIbana requête + ignorer hypen

message:Oct 17 01:26:20 arnold-123-20.us.com arnold: [INFO]- Successful 

Rechercher dans l'interface utilisateur de Kibana:

message:"arnold" AND message:"123-20" AND message:'Successfully' 

Répondre

0

La norme ElasticSearch tokenizer brise les limites de mot. Les caractères - sont considérés comme des limites de mots. Ainsi, ES interne stocke message comme [oct,17,01,26,20(2),arnold(2),123,us,com,info,successful] (essentiellement, c'est un vecteur de termes + fréquence, ignorant l'ordre des termes.)

Vous devez créer une coutume tokenizer qui reconnaît les jetons dans vos données et réindexer vos données en utilisant ça. Votre recherche pourrait alors fonctionner.

Une meilleure solution consiste à utiliser logstash pour analyser certains types de messages et stocker les données dans différents champs. Par exemple, vous pouvez stocker arnold-123-20 a hostPart, us.com comme hostDomain, et arnold-123-20.us.com comme fullHost. Vous devez également ajouter un modèle d'index qui marque différents champs comme not_analyzed.