ES DSL语法

ES 查询主要分为两大类:词条查询(term)和全文查询(match)
参考:https://www.cnblogs.com/ljhdo/p/4577065.html
词条查询和全文查询的主要区别:前者对搜索关键词不分析(分词)直接构建查询,match类则会将搜索关键词分析后在构建查询
词条查询的语法有:term terms prefix wildcard regexp
全文查询的语法主要是match类:match match_phrase match_phrase_prefix multi_match

特别关注的语法解释:
wildcard 相当于 mysql的like,机械式匹配,效率慢,支持的通配符只有两个:*:0个或多个任意字符 , ?:任意单个字符
fuzzy 字符的相似度-编辑距离,通过算法匹配,和普通需求想法可能结果不一样
match_phrase 和match_phrase_prefix phrase (短语)除了要匹配短语分词外,并且保证各个分词的相对位置不变

查询语法另一种分类,也是和传统SQL对比
参考:https://www.cnblogs.com/shoufeng/p/11103913.html
1 term query - 索引词检索
1.1 term query - 不分词检索 =
1.2 terms query - in检索
2 prefix query - 前缀检索
3 wildcard query - 通配符检索 like
4 regexp query - 正则检索
5 fuzzy query - 纠错检索
6.其他复杂检索

_bulk

create:id不能为空,必须指定id,id相同时报错

index:id可以为空,不指定id时自动生成,id相同时覆盖

update :需要用doc 包括起来

{"update":{"_index": "bi_stat_order","_type": "type","_id": "mW2zxnEBerbeohH8xPZT"}}

{"doc":{"date": 1588118400000,"total": 160}}

两行之间不使用分号分隔

可以直接指定index 和type ,省去每一行都要写index和type

POST bi_stat_order/type/_bulk

{"index":{}}

{"date": 1588118400000,"total": 179}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容