1、查询分类
2、基本语法
3、查询所有
4、全文检索查询
- 要求:会对搜索内容进行分词,所以搜索的字段必须是text类型
matche查询
multi_match查询
- 多字段查询,任意一个字段符合条件就算符合查询条件
- 注意:搜索的字段越多,性能越低。所以可以选择使用 copy_to 把多字段的内容复制到一个指定的字段,如上面的 all 字段,那样搜索 all 字段就可以实现跟 multi_match查询 同样的功能了,而这是单字段查询,所以性能会高很多
5、精确查询
- term查询:根据词条精确值查询
- range 查询 :根据值的范围查询,一般应用在对数值类型做范围过滤的时候
6、地理坐标查询
- geo_bounding_box查询
- 距离查询(geo_distance)
案例:
7、复合查询
- fuction score :算分函数查询,可以控制文档相关性算分,控制文档排名
场景:
是广告的内容,排在最上面
就是谁掏钱多,谁就排上面
案例:查询城市在上海的酒店数据,给“如家”这个品牌的酒店排名靠前一些
算分后:
- bool query:布尔查询,利用逻辑关系组合多个其它的查询,实现复杂搜索。实际上就是多条件查询
-注意:搜索时,参与 打分的字段越多,查询的性能也越差
多条件查询时,建议:
搜索框的关键字搜索,是全文检索查询,使用must查询,参与算分
其它过滤条件,采用filter查询。不参与算分
案例: