参考

Elasticsearch: analyzer

一、测试

Must 里面的都得成立

should里面的成立一个即可,若should里面只有一个,那么就用这一个的条件

term 精确匹配,不会分词

match_phrase 精确匹配

会分词,一般是按照空格分目标文档包含,分词后的所有词文档彼此位于相同的位置

使用boost的场景,term、range、boost

Range gt、le 大于小于 y M w d h H m s

script脚本操作

//doc['price']
GET /mall/product/_search
{"query": {"script": {"script": {"inline": "doc['price'].value > params.num","params": {"num": 25}}}}
}
//ctx._source
POST /mall/product/3/_update
{"script": {"inline": "ctx._source.price = params.num","params": {"num": 40}}
}PUT /lulog/doc/2
{"log_size": 2
}POST /lulog/doc/_search
{"query": {"match_all": {}},"script_fields": {"total_size": {"script": {"inline": "int total=0;for(int i=0; i<doc['log_size'].length;i++){total += doc['log_size'][i];}return total"}}}
}POST /lulog/doc/_search
{"query": {"match_all": {}},"script_fields": {"count": {"script": {"inline": "return doc['log_size'].value + 1"}}}
}

聚合:

Metric统计,min、max、sum、avg、stats、extended_stats

Bucket分类,terms,range,date_range,histogram,date_histogram,filter过滤

Pipeline对bucket分类的进行统计,min_bucket,max_bucket,sum_bucket,avg_bucket,stats_bucket,extended_stats_bucket

Matrix计算两个数值型字段之间的关系

GET incall_daily-2020.04.24/doc/_search
{"aggs": {"asdjhasd": {"matrix_stats": {"fields": ["applause_count", "answer_count"]}}}
}
{"name": "applause_count",  //字段名称"count": 154,   //字段样本数量"mean": 44.31818181818182,    //平均值"variance": 276.04842543077837,  //方差,偏离平均值的程度"skewness": -1.60794152400977,    //偏度,在平均值附近的非对称分布情况的量化"kurtosis": 5.006387495325678,   //峰度,分布的形状的量化"covariance": {   //协方差,描述一个字段数据随另一个字段数据变化程度的矩阵"applause_count": 276.04842543077837,"answer_count": 290.8722519310755},"correlation": {  //相关性,描述两个字段数据之间的分布关系,其协方差矩阵取值为[-1, 1]"applause_count": 1.0,"answer_count": 0.9397723506362066}
}, {"name": "answer_count","count": 154,"mean": 53.48051948051948,"variance": 347.035565741448,"skewness": -2.2011119165278625,"kurtosis": 6.583666847748493,"covariance": {"applause_count": 290.8722519310755,"answer_count": 347.035565741448},"correlation": {"applause_count": 0.9397723506362066,"answer_count": 1.0}
}

如果是聚合,需要过滤数据,建议使用filter,不要使用query

为啥?filter 只会匹配文档是不是我要的,query匹配好之后,还多了一个相关性算分的过程,因此filter效率更高

GET incall_daily*/doc/_search
{"query": {"bool": {"must": [{"match": {"parent_id": "17871"}}]}}, "aggs": {"a1": {"date_histogram": {"field": "create_time","interval": "2d"},"aggs": {"a2": {"stats": {"field": "applause_count"}}}}}
}
GET incall_daily-2020.04.24/doc/_search
{"aggs": {"f1": {"filter": {"term": {"user_id": "17871"}},"aggs": {"a1": {"date_histogram": {"field": "create_time","interval": "2d"},"aggs": {"a2": {"terms": {"field": "applause_count"}}}}}}}
}

二、查询篇

1、高亮查询

GET callcenter/_search
{"query": {"match": {"content": "天翼"}},"size": 30,"highlight": {"pre_tags": "<span>", "post_tags": "</span>", "fields": {"content": {"fragment_size": 20,         //从content内容的前20个字来找高亮字段}}}
}

2、查询字符串查询

query_string,只有 AND OR,且必须是大写
simple_query_string,+与 |或 -非 () * GET /callcenter/_search
{"query": {"query_string": {"fields": ["title", "content"], "query": "天翼 AND (骚扰 OR 商务)"}}
}
GET /callcenter/_search
{"query": {"query_string": {"fields": ["title", "content"], "query": "(商务 OR 直播) AND 商务"}}
}GET callcenter/_search
{"query": {"simple_query_string": {"query": "-商务 + -工号 + -外勤 + -网吧 + -天翼","fields": ["title"]}}
}相关性
GET callcenter/_search
{"query": {"boosting": {"positive": {"match": {"content": "天翼商务"}},"negative": {"match": {"content": "商务"}},"negative_boost": 0.2}},"size": 50
}

3、复合查询

该查询实现和上面的查询一样的效果,看得出,代码写的贼麻烦GET callcenter/_search
{"query": {"bool": {"must": [{"bool": {"must_not": [{"match": {"title": "商务"}},{"match": {"title": "工号"}},{"match": {"title": "外勤"}},{"match": {"title": "网吧"}},{"match": {"title": "天翼"}}]}},{"bool": {"must_not": [{"match": {"content": "商务"}},{"match": {"content": "工号"}},{"match": {"content": "外勤"}},{"match": {"content": "网吧"}},{"match": {"content": "天翼"}}]}}]}}
}

4、精确查找

GET callcenter/_search
{"query": {"term": {"title": {"value": "商务"}}}
}
GET callcenter/_search
{"query": {"match_phrase": {"title": "商务"}}
}
GET callcenter/_search
{"query": {"terms": {"title": ["电信","号码"]}}
}

5、分页查询

GET article/_search
{"query": {"match_all": {}},"sort": [{"date": {"order": "desc"}}],"from": 20, "size": 20
}滚动翻页
GET article/_search?scroll=1m
{"query": {"match_all": {}},"sort": [{"date": {"order": "desc"}}], "size": 10
}
GET _search/scroll
{"scroll": "1m","scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAABdUMFk5uSzVIbGRuU1FTb1RoT0x5dTVyM2cAAAAAAAXVDRZObks1SGxkblNRU29UaE9MeXU1cjNnAAAAAAAF1Q4WTm5LNUhsZG5TUVNvVGhPTHl1NXIzZwAAAAAABdUPFk5uSzVIbGRuU1FTb1RoT0x5dTVyM2cAAAAAAAXVEBZObks1SGxkblNRU29UaE9MeXU1cjNn"
}

6、聚合查询

GET incall_daily-2020.04.24/_search
{"aggs": {"f": {"range": {"field": "create_time","ranges": [{"from": "2020-04-23T00:00:00.000Z"}]}, "aggs": {"d1": {"date_histogram": {"field": "create_time","interval": "1d","order": {"_key": "desc"}},"aggs": {"d2": {"terms": {"field": "order_type.keyword","order": {"d3": "desc"}},"aggs": {"d3": {"sum": {"field": "answer_count"}}}}}}}}}
}

7、建议查询

精准程度上(Precision)看: Completion >  Phrase > term
速度上,Completion是最快的自动补全设计:优先取Completion,依次...POST /lu_article/_search
{"_source": ["title", "descript", "create_time"],"suggest": {"s1": {"prefix": "cento","completion": {"field": "suggest","fuzzy": {}}},"s2": {"text": "elasticseqrch mybatls mysal","phrase": {"field": "descript","highlight": {"pre_tag": "<em>","post_tag": "</em>"}}},"s3": {"text": "elasticseqrch mybatls mysal","term": {"field": "descript"}}}
}##completion创建字段,插入值,自动补全,suggest可以是字符串、对象、数组,weight选填
"suggest": {"type": "completion","analyzer": "ik_max_word"},PUT /lu_article/_doc/1
{"suggest": [{"input": "lucene solr","weight": 1},{"input": "lucene so cool","weight": 4},{"input": "lucene elasticsearch","weight": 3}]
}
POST /lu_article/_search
{"_source": ["title", "descript", "create_time", "suggest"],"suggest": {"s1": {"prefix": "luce","completion": {"field": "suggest"}}}
}

三、elasticsearch 实际应用(碎片篇)相关推荐

  1. ElasticSearch查询 第四篇:匹配查询(Match)

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  2. ElasticSearch入门 第五篇:使用C#查询文档

    网址:http://www.cnblogs.com/ljhdo/p/4550135.html 这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Win ...

  3. ELK系列(十五)、Elasticsearch核心原理一篇全搞定

    目录 Lucene 介绍 核心术语 如何理解倒排索引? 检索方式 分段存储 段合并策略 Elasticsearch 核心概念 节点类型 集群状态 3C和脑裂 1.共识性(Consensus) 2.并发 ...

  4. [Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. WSS(Windows Storage Server)2008R2使用指南(三)配置及使用篇

    WSS2008专题内容: WSS(Windows Storage Server)2008R2使用指南(一)下载篇 WSS(Windows Storage Server)2008R2使用指南(二)安装篇 ...

  6. 最新版本elasticsearch本地搭建入门篇

    最新版本elasticsearch本地搭建入门篇 项目介绍 最近工作用到elasticsearch,主要是用于网站搜索,和应用搜索. 工欲善其事,必先利其器. 自己开始关注elasticsearch, ...

  7. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

  8. JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!

    JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...

  9. 小学生计算机课的演讲稿,小学生课前三分钟演讲稿范文5篇

    课前小演讲的活动,是一个正能量的传播平台,也是一个互相了解的好方式.我会一直继续下去的,并在此过程中不断的完善.下面给大家分享一些关于小学生课前三分钟演讲稿范文5篇,供大家参考. 小学生课前三分钟演讲 ...

最新文章

  1. 封禁华为的美国,现在不得不在5G标准制定上“恢复合作”,网友:5G真香
  2. UVa1587 Box(排序)
  3. Aptana:JavaScript开发利器
  4. JavaXml教程(十)XML作为属性文件使用
  5. JavaScript-引入JavaScript
  6. JavaWeb学习笔记——Tomcat配置
  7. web开发程序员有几种_每个程序员都应该知道的10种流行的Web开发工具
  8. 从贝叶斯模型(Bayes)到生成模型(Generative models)(生成式分类器,generative classifier)
  9. c++怎么确定一个整数有几位_《小数乘整数》说课稿
  10. android 右边抽屉,android双抽屉:右抽屉切换
  11. 产品经理相关学习资料
  12. 记录matlab符号方程符号解求法
  13. NOIP2003 侦探推理
  14. 微信小程序 -- 订阅消息wx.requestSubscribeMessage
  15. 大白话5分钟带你走进人工智能-第七节梯度下降之梯度概念和梯度迭代过程(2)
  16. SugarCRM源码分析之缓存
  17. 对第一台计算机的介绍,关于世界上第一部计算机的介绍
  18. 深挖阿里健康财报中的隐藏剧情:慢病管理布局已成?
  19. t-io 3.7.5 发布,口碑炸裂的国产网络编程框架
  20. ListNameValuePair params = new ArrayListNameValuePair();

热门文章

  1. linux cp拷贝一个文件到另一个目录,cp命令复制文件夹到另一个文件夹的注意事项 - 翟码农技术博客...
  2. linux格式化TF卡工具
  3. 如何对网站漏洞修补进行渗透测试
  4. 三维地图之Google earth安装使用
  5. 智慧路灯杆系统环境监测 5G智能灯杆网关的功能有哪些
  6. 关于产品和消费的思考
  7. LApacheMP基础环境搭建
  8. 【生信分析】clusterProfiler: universal enrichment tool for functional and comparative study(3)
  9. csp计算机专业,中国计算机学会推出CSP非专业级别认证
  10. 实验输出菱形图案 (5 分)