如何使Elasticsearch正确查询哪个关键字应包含空格,而是键入相邻。 E.g。
“thisisaquery” - > “这是一个查询”
我当前的设置是:
"settings": {
"index": {
"analysis": {
"analyzer": {
"autocomplete": {
"tokenizer": "whitespace",
"filter": [
"lowercase", "engram"
]
}
},
"filter": {
"engram": {
"type": "edgeNGram",
"min_gram": 3,
"max_gram": 10
}
}
}
}
}
答案 0 :(得分:0)
没有开箱即用的tokenizer / token过滤器来明确处理您要求的内容。最接近的是compound word token filter,需要手动提供字典文件,在您的情况下可能需要完整的英文字典才能正常工作。即使这样,它可能会出现与其他单词,缩写等词汇有关的单词的问题,而没有太多额外的逻辑。根据您的具体要求,它可能已经足够好了。
答案 1 :(得分:0)
这个红宝石项目声称这样做。如果您使用ruby,或者只是查看他们的代码并为其复制他们的分析器设置,您可以尝试:)