1

我的弹性服务器中有一个文本索引。我已经实现了一个这样的 ngram 标记器:

"analysis": {
      "analyzer": {
        "ngram_analyzer": {
          "type": "custom",
          "tokenizer": "ngram_tokenizer"
        }
      },
      "tokenizer": {
        "ngram_tokenizer": {
          "type": "ngram",
          "min_gram": "3",
          "max_gram": "7"
        }
      }
    },

可以说我的数据是

“你好美丽的世界”

当我放置一个查询匹配“地狱”时,我希望它只找到我的第一个单词(Hello)而不是单词 ell,所以基本上我不希望它“破坏”我的搜索模式只是为了在我的数据中找到它是(有 4 个字符且不低于)

谢谢

4

1 回答 1

1

解决方案是更改分析器中的标记器。

例如你可以这样做

"some_analyzer": {
    "type": "custom",
    "tokenizer": "whitespace",
    "filter": [ "lowercase" ]
  }

重要的是您的搜索分析器没有 nGram 标记器。

于 2016-12-06T14:05:22.430 回答