ES主要功能就是存储数据,然后提供丰富的搜索功能。所以从这篇开始我们正式进入搜索想关的学习,这一篇先开个简单API的头。
一、API简介
ES的search查询API大致分为两种,一种是简单的就在URL中携带查询数据的,一种是在请求体重的查询。第二种是ES推荐的,也就是所谓的DSL,基于JSON格式的,查询语法功能更加完备,丰富。
1、指定查询的索引
在查询的时候,不管怎样,都需要带着_search这个关键字,标识是查询的API。
我们看到语法是可以很灵活的指定你查询的是那些索引的。
2、基于URL的查询
这个方式不常使用,我也不使用,所以就跳过了,有兴趣的可以看看。
这里帖个查询的语法。
3、基于DSL的查询
DSL的查询是常见使用的一种查询语法,所以这里我们后面主要就是使用这一套语法进行查询。
查询结果中的score是ES根据你查询算出来的评分,评分一方面是基于内容,一方面是业务的模式,做的打分搜索。
内容:可能就是命中度
业务:比如有人花钱了,你就得把他的评分提高
4、相关性
在计算机角度,相关性也称之为Information Retrieval,他有三个标准。
- Precision(查准率):尽可能返回较少的无关文档
- Recall(查全率):尽可能返回较多的相关文档
- Ranking:是否能按照相关度进行排序。
使用ES的查询和相关的参数可以改善一下查准率和查全率。