我的弹性服务器中有一个文本索引。 我已经实现了这样的ngram tokenizer:
"analysis": {
"analyzer": {
"ngram_analyzer": {
"type": "custom",
"tokenizer": "ngram_tokenizer"
}
},
"tokenizer": {
"ngram_tokenizer": {
"type": "ngram",
"min_gram": "3",
"max_gram": "7"
}
}
},
让我说我的数据是
"你好美丽的世界"
当我发出一个查询匹配" Hell" 我希望它只找到我的第一个单词(Hello),而不是单词ell,所以太过分了,我不想要它" break"我的搜索模式只是为了在我的数据中找到它(有4个字符而不是下面)
谢谢
答案 0 :(得分:1)
解决方案是更改分析仪中的标记器。
例如你可以像
那样做"some_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [ "lowercase" ]
}
重要的是,您的搜索分析器没有nGram tokenizer。