Elasticsearch对文档的查询操作

查询文档中个字段的含义:

“-index”:  表示在那个索引(相当于数据库中位于那个库)

“-type”:   表示是那个类型(相当于数据库中位于哪个表)

“-id”:  记录的ID

“-version”: 版本号

“-seq_no”: 并发控制字段,每次更新就会加一,用来做乐观锁

“-primary_term”:  同上。主分片重新分配,如重启就会变化

“-found”:  表示是否找到数据查询文档中个字段的含义

“-source”:真正查找的内容

更新文档:

POST更新会对比原来的数据,如果一样版本号就不会发生变化,seq_no也不变

Put和不带_update的POST都会直接更新

Elasticsearch对文档的查询操作

Elasticsearch对文档的查询操作

Put和不带_update的POST也是可以的

删除文档&索引

Elasticsearch对文档的查询操作

批量操作:必须是POST请求

Elasticsearch对文档的查询操作

Elasticsearch对文档的查询操作

测试:

Elasticsearch对文档的查询操作

批量操作每条记录都是独立统计,上一条记录的失败不会影响下一条记录的进行

测试数据:

Elasticsearch对文档的查询操作

两种查询数据方式:

Elasticsearch对文档的查询操作

示例:

Elasticsearch对文档的查询操作

match既可以做精确查询(查询字段非字符串)也可以做模糊匹配

分词匹配:全文检索按照评分进行排序,会对检索条件进行分词匹配,能按照评分排序是得益于倒排索引。

Elasticsearch对文档的查询操作

短语匹配:

Elasticsearch对文档的查询操作

多字段匹配:进行分词匹配

Elasticsearch对文档的查询操作

复合查询:

Elasticsearch对文档的查询操作

must:必须符合某个条件

must_not:必须不是XXX

should:满足条件最好得分就会更高,不满足也没有关系

结果过滤:

Elasticsearch对文档的查询操作

示例:

Elasticsearch对文档的查询操作

Elasticsearch对文档的查询操作

过滤和匹配的区别就是是否对相关性得分有贡献。

term:全文检索的字段(地址等)不推荐使用,精确的字段可以使用(年龄等)

Elasticsearch对文档的查询操作

Elasticsearch对文档的查询操作keyword是精确匹配,match_phrase是模糊匹配