【发布时间】:2019-07-25 03:11:07
【问题描述】:
我在elasticsearch中有数据,字段为fullName:
- 约翰·多伊·多伊
- 约翰·多伊
- 埃里克·约翰·多伊
当我对fullName 进行匹配查询时,使用此查询
{
"from": 0,
"size": 20,
"query": {
"bool": {
"must": [
{
"match": {
"fullName": {
"query": "John Doe",
"operator": "AND",
"fuzziness": "AUTO"
}
}
}
]
}
}
}
我希望得到John Doe(完全匹配)作为第一个结果。
相反,返回的值是这样的:
- 约翰·多伊·多伊
- 埃里克·约翰·多伊
- 约翰·多伊
完全匹配的结果是最低的。
我应该怎么做才能将完全匹配放入第一个结果中?
我不能使用term 查询,因为我仍然需要对fullName 进行模糊匹配
谢谢
【问题讨论】:
-
这个answer 可能会对你有所帮助。
-
@NishantSaini 建议的答案提供了非常有价值的信息,但它不处理重复的术语。 “John Doe”仍将在“John Doe”之后。
标签: elasticsearch