【问题标题】:Elastic Search prefix , suffix , EdgeGram弹性搜索前缀、后缀、EdgeGram
【发布时间】:2013-02-07 17:53:17
【问题描述】:

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

【问题讨论】:

  • 很难理解你想要什么。你能澄清一下吗?您之前尝试的代码示例将有助于理解。

标签: java elasticsearch


【解决方案1】:

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",

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多