2013-02-07 55 views
0

如何通過中間或最後一個英文字母來搜索單詞。例如CORPORATION是一個詞,我可以通過使用EdgeGram和前綴過濾器來搜索CORPORATION的COR,CO,C等首字母。但我無法使用POR或RATI或ION的CORPORATION的最後一個字母或中間字母進行搜索。是彈性搜索支持這個功能嗎?如果是的話,我該如何解決這個問題。彈性搜索前綴,後綴,EdgeGram

+0

很難理解你想要什麼。你能澄清嗎?你以前的嘗試的代碼示例將有助於理解。 –

回答

2

nGram tokenizer會做你想做的。它就像Edge-nGram標記器一樣,除了它在整個單詞中移動而不是固定在一個邊上。

$ curl localhost:9200/test/_analyze?tokenizer=ngram&pretty' -d 'corporation' | grep token 

"tokens" : [ { 
"token" : "c", 
"token" : "o", 
"token" : "r", 
"token" : "p", 
"token" : "o", 
"token" : "r", 
"token" : "a", 
"token" : "t", 
"token" : "i", 
"token" : "o", 
"token" : "n", 
"token" : "co", 
"token" : "or", 
"token" : "rp", 
"token" : "po", 
"token" : "or", 
"token" : "ra", 
"token" : "at", 
"token" : "ti", 
"token" : "io", 
"token" : "on",