2017-10-10 13 views
-1

Je souhaite marquer "a.b.c" en a, a.b, a.b.c, b.c, b, c parties dans ElasticSearch. J'ai essayé quelques regex mais mettre à jour tokenizer est fastidieux et je suis très mauvais à regex donc je demande de l'aide.Modèle Tokenizer pour l'extraction du nom de fichier

je l'ai déjà essayé cette formule mais ils ne m'a donné ce que je veux:

[(^\\.)]+ 
[(.+\\.)]+ 
[^\\p{L}\\d]+ 
+0

pourrait vous s'il vous plaît, donner plus breif sur votre condition réelle !! :) –

+0

c'est exigence réelle! nom de fichier tokenizing dans ses parties – vakarami

Répondre

2

Essayez cette,

PUT my_sample 
{ 
    "settings": { 
    "analysis": { 
     "analyzer": { 
     "my_analyzer": { 
      "tokenizer": "my_tokenizer" 
     } 
     }, 
     "tokenizer": { 
     "my_tokenizer": { 
      "type": "path_hierarchy", 
      "delimiter": ".", 
      "replacement": "." 
     } 
     } 
    } 
    } 
} 

puis,

POST my_sample/_analyze 
{ 
    "analyzer": "my_analyzer", 
    "text": "a.b.c" 
} 

il sera produit les termes suivants:

[ a.b.c., a.b., b.c., a., b., c. ] 

vous simple poignée à travers votre programme

+0

merci, mais dans mon dernier test '. 'n'existe pas (heureusement!) et aussi que le document dit qu'il génère seulement' a.b.c a.b a' – vakarami