2026/10/16 8:09:59
网站建设
项目流程
查询类型
- must 参与评分score
- should 参与评分score
- filter 不计算评分
- must_not 不计算评分
优化手段
- 如果不需要评分,就不要使用must/should 都用filter包裹
- 避免深分页,使用search_after
- source 过滤返回字段
为什么使用ES不用mysql
- 多条件复杂查询,就算每个条件都加索引,优化器也不一定会走索引合并取主键交集,而是很可能只用一个索引,大数据量场景效率低下。mysql多条件查询,一般都需要加联合索引的。所以就不灵活,明天再加一个条件。就要再新加一个联合索引。ES天然各条件 _docId取交集的
- ES不仅可以查询,还可自定义加权打分排序,主要用于全文检索,还有分词器等。还支持聚合分析
- 结构化数据,简单查询还是使用mysql保存,cannel监听binlog,整合数据写入ES