0

如何通过它的中间或最后一个英文字母来搜索一个单词。例如 CORPORATION 是一个单词,我可以使用 EdgeGram 和前缀过滤器搜索 CORPORATION 的首字母,如 COR、CO、C 等。但我无法使用 POR 或 RATI 或 ION 的 CORPORATION 的最后一个字母或中间字母来搜索它。弹性搜索是否支持此功能?如果是,那么我该如何解决这个问题。

4

1 回答 1

2

nGram标记器会做你想做的事。它就像 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",
于 2013-02-07T09:53:17.303 回答