随笔分类 - Elasticsearch
摘要:本篇继续一下Elasticsearch日常使用的技巧翻译。 在Elasticsearch有很多的api支持在body中指定_index等信息,比如mget或者msearch以及bulk。 默认的情况下,body中的index会覆盖掉url中的index参数。比如: 虽说在url中指定了index为t
阅读全文
摘要:本篇翻译的是Elasticsearch官方文档中的一些技巧,是使用Elasticsearch必不可少的必备知识,并且适用于所有的Rest Api。 返回数据格式化 当在Rest请求后面添加 时,结果会以Json格式化的方式显示。另外,如果添加 结果会以树的形式显示,默认都是Flase. 返回数据的易
阅读全文
摘要:在elasticsearch中,有时会想要通过索引日期来筛选查询的数据,此时就需要用到日期数学表达式。 更多内容参考 "Elasticsearch翻译汇总" 基于日期数学表达式的索引 模式如下: 其中各个字段含义为: static_name 是索引的静态部分 date_math_expr 是日期的表
阅读全文
摘要:Elasticsearch中数据都存储在分片中,当执行搜索时每个分片独立搜索后,数据再经过整合返回。那么,如果要实现分页查询该怎么办呢? 更多内容参考 "Elasticsearch资料汇总" 按照一般的查询流程来说,如果我想查询前10条数据: 1 客户端请求发给某个节点 2 节点转发给个个分片,查询
阅读全文
摘要:在Elasticsearch中,一般的查询都支持多索引。 只有文档API或者别名等不支持多索引操作,因此本篇就翻译一下多索引相关的内容。 首先,先插入几条数据: 这样,当前的ES中就存在两个索引、三条数据! 数组风格 最基本的就是这种数组的风格,比如使用逗号进行分隔: _all 也可以在索引部分直接
阅读全文
摘要:更多内容参考: "Elasticsearch学习总结" 关于String类型——分词与不分词 在Elasticsearch中String是最基本的数据类型,如果不是数字或者标准格式的日期等这种很明显的类型,其他的一般都会优先默认存储成String。同样的数据类型,Elasticsearch也提供了多
阅读全文
摘要:前篇说过,ES可以自动为文档设定索引。但是问题也来了——如果默认设置的索引不是我们想要的,该怎么办呢?要知道ES这种搜索引擎都是以Index为实际的分区,Index里面包含了不同的类型,不同的类型是逻辑上的分区;每种类型可能包含有相同的字段,如果字段的类型相同还好,如果不同....那就会导致字段的冲...
阅读全文
摘要:ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引、类型等信息,在索引的同时会自动完成索引、类型、映射的创建。那么什么是映射呢?映射就是描述字段的类型、如何进行分析、如何进行索引等内容。本篇就着重讲述下,ES中映射的自动检测特性。更多内容参考:Elastisearch知识总结字段自动...
阅读全文
摘要:在Elasticsearch的REST API中,有很多使用技巧,这里针对官方文档给出的介绍,总结了几个常用的例子。更多内容参考:Elastisearch文档总结多索引ES支持在一次请求中指定多个索引,可以使用通配符或者日期表达式的方式:例如,foo*索引会匹配foo1,foo2,foo3等索引。_...
阅读全文
摘要:ES基于Lucene开发,因此也继承了Lucene的一些多样化的查询,比如本篇说的Span Query跨度查询,就是基于Lucene中的SpanTermQuery以及其他的Query封装出的DSL,接下来就看一下这些DSL都如何使用吧!更多翻译参考:Elasticsearch知识汇总span_ter...
阅读全文
摘要:在一般的关系型数据库中,都支持连接操作。在ES这种分布式方案中进行连接操作,代价是十分昂贵的。不过ES也提供了相类似的操作,支持水平任意扩展,实现连接的效果。其他内容,参考Elasticsearch官方指南整理ES中的连接在ES中支持两种连接方式:嵌套查询 和 has_child、has_paren...
阅读全文
摘要:Elasticsearch支持很多查询方式,其中一种就是DSL,它是把请求写在JSON里面,然后进行相关的查询。举个DSL例子GET _search{ "query": { "bool": { "must": [ { "match": { "title": "...
阅读全文
摘要:Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 语句。 单词,例如:"test","hello" 语句,例如:"hello,world!" 多个词
阅读全文
摘要:下载后解压的Elasticsearch中,有以下几个基本的目录:home---这是Elasticsearch解压的目录 bin---这里面是ES启动的脚本 conf---elasticsearch.yml为ES的配置文件 data---这里是ES得当前节点的分片的数据,可以直接拷贝到其他的节点...
阅读全文
摘要:平台支撑ES支持在不同的平台上运行,下面这幅图中,对号标记的是经过测试的平台,其他的也可以运行,但是可能会出现BUG。下载与安装在官网下载地址就可以进行下载。然后解压,进入bin目录,运行下面的命令:$ bin/elasticsearch如果想要以守护进程的方式运行,可以添加-d参数:$ bin/e...
阅读全文
摘要:ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API。本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用。虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的特性。其他相关的内容参考:Elasticsearch官方文档翻译样例数据为了更好的使用和理解ES,没...
阅读全文
摘要:ES支持近实时的索引、更新、查询、删除文档,近实时就意味着刚刚索引的数据需要1秒钟后才能搜索到,这也是与传统的SQL数据库不同的地方。更多的ES文档资料参考:Elasticsearch官方文档翻译索引/替换文档之前已经试过如何索引一个文档了,这里再复习一下:curl -XPUT 'localhost...
阅读全文
摘要:相比于range聚合,date range就是范围可以由时间来指定。例如:{ "aggs":{ "range":{ "date_range":{ "field":"date", "format":"...
阅读全文
摘要:Elasticsearch提供了多种聚合方式,能帮助用户快速的进行信息统计与分类,本篇主要讲解下如何使用Range区间聚合。最简单的例子,想要统计一个班级考试60分以下、60到80分、80到100分,在ES中只要一个命令就可以轻松统计....更多资料参考:Elasticsearch文档翻译聚合例子按...
阅读全文
摘要:ES通过设置【节点的名字】和【集群的名字】,就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化。如果用户想要管理查看集群的状态,可以通过一些REST API来实现。其他的ES文档翻译参考:Elasticsearch文档总结REST API用途ES提供了很多全面的API,大致可以...
阅读全文