【发布时间】:2020-02-22 18:25:03
【问题描述】:
我在 ElasticSearch 中使用模糊搜索选项。它太酷了。
但我在搜索包含空格的值时遇到了一个问题。例如说我有两个值:
"Pizza"
"Pineapple Pizza"
然后我使用这个查询搜索 Pizza:
client.search({
index: 'food_index',
body: {
query: {
fuzzy: {
name: {
value: "Pizza",
transpositions: true,
}
},
}
}
})
返回的值为:
"Pizza"
"Pineapple Pizza"
这是预期的。但如果我在查询中输入值“Pineapple Pizza”:
client.search({
index: 'food_index',
body: {
query: {
fuzzy: {
name: {
value: "Pineapple Pizza",
transpositions: true,
}
},
}
}
})
返回的值为:
""
空
这是为什么呢?它应该是完全匹配的。 我正在考虑将所有包含空格的名称切换为下划线。所以“Pineapple Pizza”将是“Pineapple_Pizza”(这个解决方案对我有用)。但我问这个问题是希望找到一个更好的选择。我在这里做错了什么?
【问题讨论】:
-
name 字段使用的分析器是什么?
标签: javascript node.js elasticsearch search fuzzy-search