elasticsearch实现优先展示连词并按某个字段折叠显示最新一条
前言
场景要求:
- 优先展示关键词连词的商品
- 按照某个字段折叠相同字段,并按指定排序字段选择第一个
match_phrase 顺序前缀 + boost 权重
elasticsearch常用匹配:
match_phrase 查询
match_phrase 查询用于匹配包含短语的文档,它会确保查询的短语在文档中按顺序连续出现。
{
"query": {
"match_phrase": {
"content": "星球大战"
}
}
}
multi_match 查询
multi_match 查询允许在多个字段上执行相同的查询,可以指定不同的字段权重和查询类型。
{
"query": {
"multi_match": {
"query": "星球大战",
"fields": ["title", "content^2"],
"type": "best_fields",
"tie_breaker": 0.3
}
}
}
match_all 查询
match_all 查询会匹配所有文档,常用于返回整个索引的内容或与其他查询一起使用。
{
"query": {
"match_all": {
}
}
}
match_none 查询
match_none 查询用于不匹配任何文档,通常用于测试或特定的过滤场景。
{
"query": {
"match_none": {
}
}
}
bool 查询
bool 查询是一个复合查询,允许将多个查询条件组合在一起,包括 must 、 should