如何才能使Elasticsearch正确查询其中的关键字应该包含空格,而不是输入相邻的空格。例如。
“此查询”->“这是一个查询”
我当前的设置是:
"settings": {
"index": {
"analysis": {
"analyzer": {
"autocomplete": {
"tokenizer": "whitespace",
"filter": [
"lowercase", "engram"
]
}
},
"filter": {
"engram": {
"type": "edgeNGram",
"min_gram": 3,
"max_gram": 10
}
}
}
}
}发布于 2013-05-17 23:16:04
没有开箱即用的令牌器/令牌过滤器来显式处理您所请求的内容。最接近的是compound word token filter,它需要手动提供一个字典文件,在您的情况下,这可能需要完整的英语字典才能正常工作。即使这样,如果单词是其他单词的词干、缩写等而没有太多额外的逻辑,也可能会出现问题。不过,它可能已经足够好了,这取决于您的确切需求。
发布于 2013-07-25 13:39:35
这个ruby项目声称可以做到这一点。如果您使用的是ruby,您可以尝试使用它,或者只是查看它们的代码并复制它们的分析器设置:)
https://stackoverflow.com/questions/16603911
复制相似问题