前期准备:
1. 创建索引
2. 导入数据
搜索
搜索分为两个过程
1. 保存文档,es 默认情况下,会保存两部分内容,第一部分是 _source
中的数据,第二部分是 通过分词,排序等一系列过程生成的倒排索引文件,倒排索引文件中保存了词项和文档之间的对应关系。
2. 搜索时,当 es 接收到用户的搜索请求之后,就回去倒排索引中查询,通过其中的倒排索引记录找搜索的关键词对应的文档的集合,然后对文档进行评分,排序,高亮等处理,处理完成之后返回文档。
搜索请求体如下:
GET {index}/_search
{
"query": {
}
}
在 query 中写各种查询条件
查询所有文档
GET {index}/_search
{
"query": {
"match_all": {}
}
}
默认返回 10条记录
还可以简写为:
GET {index}/_search
term 查询
用一个词去查询,不对这个词作分词处理
只有文档中的指定字段中有这个词(精确匹配),才会返回这个文档
应用场景:用人名,地名作搜索条件
eg:
查询作者是XXX 的文档
分页
es 每次查询结果默认返回前 10条数据,
也可以加上分页参数
size: 每页多少数据
from: 从第几条数据开始查询
过滤返回字段
在 _source
中指定那些字段key可以返回
最小评分
ES 有一套评分机制
如果有的文档的得分特别低,说明这个文档和我们的查询关键字相关度很低。
我们可以直接设置一个最低分,低于这个分数的文档不返回。
高亮
指定高亮的关键字,在返回结果中,高亮显示