1.match / match_phrase / match_phrase_prefix / multi_match【查询】

1.1 match 它会根据所给的字符串,进行分词,然后去找出,包含这些分词结果的记录。

GET /_search
{
"query": {
"match": {
"title": "我今天看了一场电影"
}
}
} 中文好用的是ik的两个分词器 ik_max_word 和 ik_smart
ik_max_word : 会将文本做最细粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、中华人民、中华、华人、人民共和国、人民、人、民、共和国、共和、和、国国、国歌」,会穷尽各种可能的组合;
ik_smart : 会将文本做最粗粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、国歌」;
提示:做精确匹配搜索时,你最好用过滤语句,因为过滤语句可以缓存数据。

1.2 match_phrase 是短语匹配 比 match 精准一点,因为有时候 match 会分词出更多的词。

1.3 match_phrase_prefix 实现查询时输入即搜索查询时输入即搜索,prefix是前缀的意思,有正则匹配去搜索的意味,只要前缀满足就会都被查询到。

参考链接:https://blog.csdn.net/chuan442616909/article/details/57917260

1.4 multi_match 它查询允许你做 match 查询的基础上同时搜索多个字段

GET dm_map_news/_search
{
"query": {
"multi_match": {
"query": "中国",
"fields": ["title","content"]
}
}
}

2.插入数据

#put插入数据一定要有_id,可以自己指定
PUT lagou/job/1
{
"name":"ppp",
"age":12
} #post插入数据,可以没有_id,他会自己随机生成一个_id
POST lagou/job/
{
"name":"ppp",
"age":13
}

3.bool 【查询、过滤】

must : 多个查询条件的完全匹配,相当于 and

must_not : 多个查询条件的相反匹配,相当于 not

should : 至少有一个查询条件匹配,相当于 or

{
"bool": {
"must": { "match": { "title": "how to make millions" }},
"must_not": { "match": { "tag": "spam" }},
"should": [
{ "match": { "tag": "starred" }},
{ "range": { "date": { "gte": "2014-01-01" }}}
]
}
}

适合于复杂的查询条件

4.term 【过滤】

主要是用于精准匹配.比如数字,日期,布尔值或  not_analyzed 的字符串(未经分析的文本数据类型),但是如果字段是分词的,也可以查得到。

GET dm_map_news/_search
{
"_source": "title",
"query": {
"term": {
"title": {
"value": "中国"
}
}
}
}

5.terms 【过滤】

允许多个匹配条件,如果某个字段指定了多个值,那么文档需要一起去做匹配,只要符合其中一个即可

GET dm_map_news/_search
{
"_source": "title", # 只显示title资格字段
"query": {
"terms": {
"title": [
"中国",
"新闻"
]
}
}
}

6.range 【过滤】

过滤允许我们按照指定范围查找一批数据

gt :大于

gte :大于等于

lt : 小于

lte : 小于等于

GET dm_map_news/_search
{
"_source": "publish_time",
"query": {
"range": {
"publish_time": {
"gte": "2018-01-01 00:00:00",
"lte": "2019-01-01 00:00:00"
}
}
}
}

7. exists 和 missing 【过滤】

用来查看该字段是否存在

GET dm_map_news/_search
{
"query": {
"bool": {
"filter": {
"exists": {
"field": "title"
}
}
}
}
}

但是这里missing怎么用不会????????

8._update_by_query / _delete_by_query

8.1 _update_by_query 根据查询条件查询出来的数据,修改某些字段的内容

POST crawler_seed_response/info/_update_by_query
{
"script": {
"inline": "ctx._source.state = params.state",
"lang": "painless",
"params": {
"state": "2"
}
},
"query": {
"term": {
"entrance_id": "2460994"
}
}
}
解释:crawler_seed_response中entrance_id=2460994的数据,把state的字段内容修改为2

8.2 _delete_by_query 查询出来的数据直接删除,最好是先用 _search 测试下 查询语句对不对,防止误操作。

post

10.Task API

10.1 获取reindex的状态 GET _tasks?detailed=true&actions=*reindex

11. _reindex

将文档拷贝到新的索引下

POST _reindex
{
"source": {
"index": "news"
},
"dest": {
"index": "news_bak"
}
}
复制一个新的索引 为 news_bak

参考链接:

https://blog.csdn.net/liuxiangqian/article/details/78611316?locationNum=9&fps=1

https://es.xiaoleilu.com/index.html

https://www.cnblogs.com/softidea/p/6081285.html

elasticsearch query dsl的更多相关文章

  1. Elasticsearch Query DSL

    Elasticsearch Query DSL By:授客 QQ:1033553122 1. match_all 1 2. match 2 3. match_phrase 5 4. match_phr ...

  2. Elasticsearch Query DSL 整理总结(二)—— 要搞懂 Match Query,看这篇就够了

    目录 引言 构建示例 match operator 参数 analyzer lenient 参数 Fuzziness fuzzniess 参数 什么是模糊搜索? Levenshtein Edit Di ...

  3. Elasticsearch Query DSL 整理总结(一)—— Query DSL 概要,MatchAllQuery,全文查询简述

    目录 引言 概要 Query and filter context Match All Query 全文查询 Full text queries 小结 参考文档 引言 虽然之前做过 elasticse ...

  4. Elasticsearch Query DSL(查询语言)

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  5. Elasticsearch Query DSL 整理总结(三)—— Match Phrase Query 和 Match Phrase Prefix Query

    目录 引言 Match Phase Query slop 参数 analyzer 参数 zero terms query Match Phrase 前缀查询 max_expansions 小结 参考文 ...

  6. Elasticsearch Query DSL备忘(1)(Constant score query和Bool Query)

    Query DSL (Domain Specific Language),基于json的查询方式 1.Constant score query,常量分值查询,目的就是返回指定的score,一般都结合f ...

  7. Elasticsearch Query DSL查询入门

    本篇为学习DSL时做的笔记,适合ES新手,大佬请略过~ Query DSL又叫查询表达式,是一种非常灵活又富有表现力的查询语言,采用JSON接口的方式实现丰富的查询,并使你的查询语句更灵活.更精确.更 ...

  8. Elasticsearch Query DSL 语言介绍

    目录 0. 引言 1. 组合查询 2. 全文搜索 2.1 Match 2.2 Match Phase 2.3 Multi Match 2.4 Query String 2.5 Simple Query ...

  9. Elasticsearch Query DSL 整理总结(四)—— Multi Match Query

    目录 引言 概要 fields 字段 通配符 提升字段权重 multi_match查询的类型 best_fields 类型 dis_max 分离最大化查询 best_fields 维权使者 tie_b ...

随机推荐

  1. Github Desktop 克隆仓库一直出现“Authentication failed”

    如图所示: 解决方法: 使用ssh链接下载而不是https

  2. 【bzoj1758】 Wc2010—重建计划

    http://www.lydsy.com/JudgeOnline/problem.php?id=1758 (题目链接) 题意 给出一棵树,每条边有边权,问选出一条长度为$[L,U]$的路径,使得路径上 ...

  3. 常用日期计算SQL语句

    -- 本月的第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) -- 本月的最后一天 SELECT DATEADD(ms,-3,DATEADD(mm ...

  4. CNN 中, 1X1卷积核到底有什么作用

    转自https://blog.csdn.net/u014114990/article/details/50767786 从NIN 到Googlenet mrsa net 都是用了这个,为什么呢 发现很 ...

  5. Hadoop生态圈-Azkaban实现文件上传到hdfs并执行MR数据清洗

    Hadoop生态圈-Azkaban实现文件上传到hdfs并执行MR数据清洗 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果你没有Hadoop集群的话也没有关系,我这里给出当时我 ...

  6. Lua程序设计(二)面向对象概念介绍

    ----------------------------------------------------------- Lua面向对象3 local smartMan = { name = " ...

  7. Struts2_day03

    一.上节回顾 1 在action获取表单提交数据 (1)使用ActionContext类获取 (2)使用ServletActionContext类获取 (3)接口注入 2 结果配置 (1)全局结果页面 ...

  8. 【两分钟视频教程】如何使用myeclipse在mac本机运行iOS配套的服务器

    如何使用myeclipse在mac本机运行iOS配套的服务器  

  9. Javascript - Vue - 请求

    本地增删查的一个例子 <div id="box">    <div class="panel panel-primary">       ...

  10. u_boot移植之内存基础知识DDR【转】

    转自:http://blog.chinaunix.net/uid-25909619-id-4938411.html