2016-09-23 3 views
0
curl -XPUT 'http://localhost:9200/testsoundi' -d '{ "settings": { 
    "analysis": { 
    "analyzer": { 
    "my_edge_ngram_analyzer": { 
    "tokenizer": "my_edge_ngram_tokenizer" 
    } 
    }, 
    "tokenizer": { 
    "my_edge_ngram_tokenizer": { 
    "type": "edgeNGram", "min_gram" : "2", "max_gram" : "5", 
    "token_chars": ["letter", "digit","whitespace"] 
    } 
    } 
    } 
    } 
    }' 


[email protected]:~/Downloads/elasticsearch-2.4.0/bin$ curl 'localhost:9200/testsoundi/_analyze?pretty=1&analyzer=my_edge_ngram_analyzer' -d 'wonder' 

mais je reçois la sortie comme wo, gagné, wond, etc. Si je donne max_gram comme 3, je reçois seulement jusqu'à la troisième lettre ('wo', 'gagné')ngram ElasticSearch

I am expecting output like: 

won 
ond 
nde 
der 

Quelqu'un peut-il m'aider avec ceci?

Répondre

1

Bon travail, vous y êtes presque. D'abord, vous avez besoin d'un tokenizer nGram, pas un . La différence est que ce dernier ne sera segmenté qu'à partir du début du mot, tandis que le premier créera tous les jetons possibles de la longueur désirée, quel que soit l'emplacement dans le mot.

Deuxièmement, si vous avez besoin de jetons de longueur 3, min_gram et max_gram doivent être 3.

curl -XPUT 'http://localhost:9200/testsoundi' -d '{ 
    "settings": { 
    "analysis": { 
     "analyzer": { 
     "my_ngram_analyzer": { 
      "tokenizer": "my_ngram_tokenizer" 
     } 
     }, 
     "tokenizer": { 
     "my_ngram_tokenizer": { 
      "type": "nGram", 
      "min_gram": "3", 
      "max_gram": "3", 
      "token_chars": [ 
      "letter", 
      "digit", 
      "whitespace" 
      ] 
     } 
     } 
    } 
    } 
} 

'

+0

Merci une tonne! Ça marche. Parfait. :) –

+0

Génial, heureux que cela a fonctionné! – Val

+0

Val - J'essaie d'écrire un analyseur qui sépare les jetons sur les caractères spéciaux avec des espaces, et les convertit en majuscules. et si je recherche avec des minuscules aussi cela devrait fonctionner - http://stackoverflow.com/questions/39643533/custom-analyzer-which-breaks-the-tokens-on-special-characters-and-lowercase-uppe - pouvez-vous aider si possible .. –