multi-field多字段搜索
假设有个网站允许用户搜索博客的内容,以下面两篇博客内容文档为例:
PUT /my_index/my_type/1
{
"title": "Quick brown rabbits",
"body": "Brown rabbits are commonly seen."
}
PUT /my_index/my_type/2
{
"title": "Keeping pets healthy",
"body": "My quick brown fox eats rabbits on a regular basis."
}
用户输入词组 “Brown fox” 然后点击搜索按钮。事先,我们并不知道用户的搜索项是会在 title 还是在 body 字段中被找到,但是,用户很有可能是想搜索相关的词组。用肉眼判断,文档 2 的匹配度更高,因为它同时包括要查找的两个词:
现在运行以下 bool 查询:
Get /my_index/_search
{
"query": {
"bool": {
"should": [
{ "match": { "title": "Brown fox" }},
{ "match": { "body": "Brown fox" }}
]
}
}
}
{
"took" : 1,
"timed
本文探讨了ElasticSearch中的multi-field搜索,重点讲解了best fields和most fields策略。best fields策略选择最佳匹配字段的评分,而most fields则优先返回更多字段匹配的文档。tie_breaker参数用于在best fields中平衡其他匹配字段的评分。同时介绍了multi_match查询的使用,以及两种策略在不同场景下的优缺点。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



