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. linux(1):VMware虚拟软件下安装centos6.8

    前言:Linux是一种自由和开放源代码的类UNIX操作系统,继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.本人学习Linux已经有一段时间了,从一开始的小白到现在的略有所悟 ...

  2. Mysql(五) JDBC

    一.JDBC JDBC(Java DataBase Connectivity) 是Java 数据库连接API.    JDBC完成三件事: 与一个数据库连接          向数据库发送SQL语句 ...

  3. 解题:SPOJ 422 Transposing is Even More Fun

    题面 这种换来换去的东西很容易想到置换群那一套,然后题目甚至还暗示了二进制=.= 直接换的话显然是$2^{a+b}$次,但是一个循环节里可以少换一次,然后问题就变成了数循环节 在一个循环节里的位置有什 ...

  4. python独立环境virtualenv(并在pycharm中指定)

    上篇文章中讲到 Django 如何启动以及配置 sessions 功能.sessions 功能用是跟踪用户的状态,经常结合 Cookie 功能实现自动登录功能. 所谓的“自动登录”指的是:我们登录一些 ...

  5. angularJs实现动态增加输入框

    摘要:首先,有一个这样的需求,就是说,我点击添加,会动态出现需要输入的输入框.我们需要定义一个对象,类似这种, {spc:{},spctions:[]} 意思是spc对应的是一个对象,spctions ...

  6. bzoj千题计划257:bzoj4199: [Noi2015]品酒大会

    http://www.lydsy.com/JudgeOnline/problem.php?id=4199 求出后缀数组的height 从大到小枚举,合并 维护组内 元素个数,最大.次大.最小.次小 # ...

  7. 关于cookie和session

    在设置cookie的时候,它会保留在本地,无论你有没有退出浏览器都是.但是session只能在登录状态有效.退出浏览器过后就会消除掉.同时设置也是有问题的. @app.route('/login',m ...

  8. C++单链表反转

    单链表反转笔记: #include<iostream> #include<string.h> using namespace std; struct ListNode { in ...

  9. 云计算--hdfs dfs 命令

    在hadoop安装目录下:/hadoop2/hadoop-2.7.3 1.创建目录 bin/hdfs dfs -mkdir /user bin/hdfs dfs -mkdir /user/<us ...

  10. Spring面试问答25题

    1.什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发者解决了开发中基础性的问题, ...