elasticsearch query dsl
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的更多相关文章
- Elasticsearch Query DSL
Elasticsearch Query DSL By:授客 QQ:1033553122 1. match_all 1 2. match 2 3. match_phrase 5 4. match_phr ...
- Elasticsearch Query DSL 整理总结(二)—— 要搞懂 Match Query,看这篇就够了
目录 引言 构建示例 match operator 参数 analyzer lenient 参数 Fuzziness fuzzniess 参数 什么是模糊搜索? Levenshtein Edit Di ...
- Elasticsearch Query DSL 整理总结(一)—— Query DSL 概要,MatchAllQuery,全文查询简述
目录 引言 概要 Query and filter context Match All Query 全文查询 Full text queries 小结 参考文档 引言 虽然之前做过 elasticse ...
- Elasticsearch Query DSL(查询语言)
章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...
- Elasticsearch Query DSL 整理总结(三)—— Match Phrase Query 和 Match Phrase Prefix Query
目录 引言 Match Phase Query slop 参数 analyzer 参数 zero terms query Match Phrase 前缀查询 max_expansions 小结 参考文 ...
- Elasticsearch Query DSL备忘(1)(Constant score query和Bool Query)
Query DSL (Domain Specific Language),基于json的查询方式 1.Constant score query,常量分值查询,目的就是返回指定的score,一般都结合f ...
- Elasticsearch Query DSL查询入门
本篇为学习DSL时做的笔记,适合ES新手,大佬请略过~ Query DSL又叫查询表达式,是一种非常灵活又富有表现力的查询语言,采用JSON接口的方式实现丰富的查询,并使你的查询语句更灵活.更精确.更 ...
- 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 ...
- Elasticsearch Query DSL 整理总结(四)—— Multi Match Query
目录 引言 概要 fields 字段 通配符 提升字段权重 multi_match查询的类型 best_fields 类型 dis_max 分离最大化查询 best_fields 维权使者 tie_b ...
随机推荐
- 解题:POI2008 Building blocks
题面 显然我们需要考虑每一个区间,而这个问题显然我们都会做,这不就是这道题么,也就是说假如中位数是$mid$,区间和是$sum$,那么代价就是$\sum\limits_{i=l}^r |mid-num ...
- codeblocks调试
1.Next instruction 逐指令 (有可能一行内有多条指令) (Alt+F7) Next line 逐行(有可能一条指令分成多行) (F7) Next instruction: -> ...
- 解决小程序中 cover-view无法盖住canvas的问题,仅安卓真机出现
原因在于系统页面渲染的差异,在安卓中页面dom的渲染并不是完成按照上下顺序来的, 有可能出现写在后面的dom被先渲染出来,因此会随机出现能盖住.不能盖住的情况,很诡异是不是? 开发者工具中并非真机,只 ...
- Hadoop生态圈-zookeeper本地搭建以及常用命令介绍
Hadoop生态圈-zookeeper本地搭建以及常用命令介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载zookeeper软件 下载地址:https://www.ap ...
- Java基础-比较运算符Compare Operators
Java基础-比较运算符Compare Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关系运算符 关系运算符包括: 1>.大于(>) 2> ...
- Google-403-Forbidden
Author:KillerLegend Date:2014.8.14 From:http://www.cnblogs.com/killerlegend/p/3913554.html www.googl ...
- CF876 D 树状数组
大意就是放n个硬币,每次放一个计算下这种情况下的操作次数,一个操作为从左到右扫描,如果一个硬币右边是空的,就将硬币后移,否则该次操作停止. 显然发现对于一个情况,我们只要考虑最右边的空位的左侧有几个硬 ...
- Does Deep Learning Come from the Devil?
Does Deep Learning Come from the Devil? Deep learning has revolutionized computer vision and natural ...
- python学习笔记7-网络编程
import urllib.request import json,requests #urlib模块,不常用 url = 'http://api.nnzhp.cn/api/user/stu_info ...
- (32位)本体学习程序(ontoEnrich)系统使用说明文档
系统运行:文件夹system下,可执行文件ontoEnrichment --------------------------------------------------------1.简单概念学习 ...