这里写目录标题
- 关于文档的基本操作(重点)
- 基本操作
- 1、添加数据
- 2、获取数据 GET
- 3、更新数据 PUT
- 4、Post _update ,推荐使用这种方式来更新
- 简单查询
- 复杂操作搜索 select (排序,分页,高亮,模糊查询,精准查询!)
- 输出字段过滤
- 输出排序
- 分页查询!
- 布尔值查询
- must(and),所有的条件都要符合 where id=1 and name=xxxx
- should (or),只需要有一个条件符合 where id=1 or name=xxxx
- must_not (not)
- 过滤器 filter
- 匹配多个条件
- 精确查询!
- ES 分词的 理解 总结
- 多个值匹配精确
- 高亮查询
- 自定义高亮
- 参考目录
关于文档的基本操作(重点)
基本操作
1、添加数据
PUT /kuangshen/user/1
{
"name":"狂神说",
"age":23,
"desc":"一顿操作猛如虎,一看工资2500",
"tags":["技术宅","温暖","直男"]
}
2、获取数据 GET
3、更新数据 PUT
4、Post _update ,推荐使用这种方式来更新
简单查询
简单的条件查询,可以根据默认的映射规则,产生基本的查询!
复杂操作搜索 select (排序,分页,高亮,模糊查询,精准查询!)
输出字段过滤
输出结果,不想要那么多!
我们之后使用 Java 操作 Es ,所有的方法和对象就是这里面的 key!
输出排序
排序!
分页查询!
数据下标还是从0开始的,和学的所有数据结构是一样的!
布尔值查询
must(and),所有的条件都要符合 where id=1 and name=xxxx
should (or),只需要有一个条件符合 where id=1 or name=xxxx
must_not (not)
过滤器 filter
gt 等于
gte 大于等于
lt 小于
lte 小于 等于
匹配多个条件
精确查询!
term 查询是直接通过倒排索引指定的词条进行精确的查找!
关于 分词:
term,直接查询精确的
match,会使用分词器解析!(先分析文档,然后再通过分析的文档进行查询!)
两个类型 text
keyword
文档中的信息的,分词情况
ES 分词的 理解 总结
所以,就是,在搜索时,你的输入的所谓的关键字,会经过分词器,进一步分成更细化的关键字(term 情况,不会进行分词),来与 关键字 比较。(这里的比较,不管 match,还是 term,都不存在什么模糊查询,这是 关键字与关键字之间的配对)。
文档中的信息,同样会被 进行分词(keyword 、数字,不会被分词),来与搜索时的关键字进行匹配。