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. 监控IIS的运行状态

    IIS经常出现假死的情况,具体什么时候会出现假死,我就不说了,今天我要写的是如何监控IIS的状态. 程序的功能是:如果IIS是为运行的状态,就重启IIS,如果IIS的连接数达到了设置的连接数,也重启I ...

  2. C++并发编程之std::future

    简单地说,std::future 可以用来获取异步任务的结果,因此可以把它当成一种简单的线程间同步的手段.std::future 通常由某个 Provider 创建,你可以把 Provider 想象成 ...

  3. JS中的继承链

    我们首先定义一个构造函数Person,然后定义一个对象p,JS代码如下: function Person(name) { this.name = name; } var p = new Person( ...

  4. SSIS系列文章收藏

    http://blog.csdn.net/kk185800961/article/details/12398667 https://wenku.baidu.com/view/d16105abdd338 ...

  5. 前端 ajax 改写登录界面

    SSM 整合项目开发到一个阶段,想慢慢地把前台框架等技术引入进来 突然碰到一个困惑好久的问题: ajax 替换原本 form 表单 post 提交登录: 一直 404 错误,心塞.... 最后发现原来 ...

  6. JMS学习(四)-一个简单的聊天应用程序分析

    一,介绍 本文介绍一个简单的聊天应用程序:生产者将消息发送到Topic上,然后由ActiveMQ将该消息Push给订阅了该Topic的消费者.示例程序来自于<JAVA 消息服务--第二版 Mar ...

  7. [转载]Frontend Knowledge Structure

    https://github.com/JacksonTian/fks http://code.csdn.net/news/2819224 本文为大家整理了一系列关于JavaScript的常用工具,包括 ...

  8. [转载]TypeScript 入门指南

    之前有听过,但未使用过,而最近在用nodejs,angularjs做一些前端项目,想到了这个来,正是学习TypeScript的时候,看介绍貌似和coffeescript相似,也JavaScript的转 ...

  9. Spring Mvc + Maven + yuicompressor 使用 profile 来压缩 javascript ,css 文件; (十)

    profile相关知识点: 在开发项目时,设想有以下场景: 你的Maven项目存放在一个远程代码库中(比如github),该项目需要访问数据库,你有两台电脑,一台是Linux,一台是Mac OS X, ...

  10. iOS问题#解决方案#之关于“application/x-www-form-urlencoded;charset=utf-8” not supported

    http://www.cnblogs.com/ChenYilong   http://www.cnblogs.com/ChenYilong   如果你用的是AFN/ASI,那得修改源代码了,因为AFN ...