0
如何通过中间或最后一个英文字母来搜索单词。例如CORPORATION是一个词,我可以通过使用EdgeGram和前缀过滤器来搜索CORPORATION的COR,CO,C等首字母。但我无法使用POR或RATI或ION的CORPORATION的最后一个字母或中间字母进行搜索。是弹性搜索支持这个功能吗?如果是的话,我该如何解决这个问题。弹性搜索前缀,后缀,EdgeGram
如何通过中间或最后一个英文字母来搜索单词。例如CORPORATION是一个词,我可以通过使用EdgeGram和前缀过滤器来搜索CORPORATION的COR,CO,C等首字母。但我无法使用POR或RATI或ION的CORPORATION的最后一个字母或中间字母进行搜索。是弹性搜索支持这个功能吗?如果是的话,我该如何解决这个问题。弹性搜索前缀,后缀,EdgeGram
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",
很难理解你想要什么。你能澄清吗?你以前的尝试的代码示例将有助于理解。 –