声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!
Elasticsearch/ES教程(21):聚合 Aggregation
Aggregations聚合,提供了一种基于查询条件来对数据进行分桶、计算的方法。有点类似于 SQL 中的 group by 再加一些函数方法的操作聚合可以嵌套,由此可以组成复杂的操作(Bucketing聚合可以包含sub-aggregation)聚合可以实现对文档数据的统计 分析 运算,常见聚合有三类桶bucket聚合:用来对文档做分组TermAggregation 按照文档字段分组
Elasticsearch/ES教程(10):DSL简单查询
Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括:查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如:match_querymulti_match_query精确查询:根据精确词条值查找数据,一般是
Elasticsearch/ES教程(14):搜索结果排序
默认情况下,ES的搜索结果是排序的,是按 相关性 倒序排列的———相关性最高的排在最前面。那么什么是相关性,相关性如何计算?每个文档都有相关性评分,用一个正浮点数字段 _score 来表示 。 _score 的评分越高,相关性越高。查询语句会为每个文档生成一个 _score 字段。(评分的计算方式取决于查询类型 不同的查询语句用于不同的目的,这里不详细介绍。)Elasticsearch 的
Elasticsearch/ES教程(19):RestClient排序分页
from+size基本使用不做介绍。深度分页问题。页数越深,处理文档越多,占用内存越多,耗时越长。尽量避免深度分页,es通过 index.max_result_window参数限定最多到10000条数据。scroll遍历文档集的api,以快照的方式来避免深度分页的问题;scroll不能用来做实时搜索,因为数据不是实时的。(因为它取的是某个时刻数据的快照,最新的数据进不来)尽量不要使用复杂
Elasticsearch/ES教程(23):安装拼音分词器elasticsearch-analysis-pinyin
elasticsearch-analysis-pinyin是elasticsearch的一个分词插件,用于汉字与拼音之间的转换。本文主要介绍该插件的安装和具体的使用方法。官网https://github.com/medcl/elasticsearch-analysis-pinyin/releases安装拼音
Linux使用docker安装RabbitMq
RabbitMQ是一个实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用Erlang语言。是面向消息的中间件。你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处。在这个比喻中,RabbitMQ是一个邮箱、邮局、邮递员。RabbitMQ和邮局的主要区别是,它处理的不是纸,而是接收、存储和发送二进制的数据
Elasticsearch/ES教程(12):DSL复合查询之Function Score Query
原始算分 query score相关性算分 & 算分函数weight给定一个常量值,作为函数结果function scorefield_value_factor用文档中的某个字段值作为函数结果random_score随机生成一个值,作为函数结果 script_score自定义计算公式,公式结果作为函数结果加权模式定义query score 和 function score
Elasticsearch教程(8):RestClient操作索引Index
ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html其中的Java Rest Client又包括两种:Java Low Level Rest ClientJava High Level Res