Elasticsearch 是一款开源的分布式检索引擎,广泛应用于实时分析、日志分析、全文搜索和数据监控等领域。凭借其强大的实时搜索能力和灵活的查询语言,在市场上获得了广泛认可。然而,在过去两年,我们注意到一个趋势,很多 Elasticsearch 用户倾向于采用 Apache Doris 替代 Elasticsea […]
Elasticsearch 是一款开源的分布式检索引擎,广泛应用于实时分析、日志分析、全文搜索和数据监控等领域。凭借其强大的实时搜索能力和灵活的查询语言,在市场上获得了广泛认可。然而,在过去两年,我们注意到一个趋势,很多 Elasticsearch 用户倾向于采用 Apache Doris 替代 Elasticsea […]
在 Elasticsearch 中,cat API 仅适用于使用 Kibana 控制台或命令行供人类使用。 它们不适合应用程序使用。 对于应用程序消耗,我们建议使用相应的 JSON API。所有的 cat 命令都接受查询字符串参数 help,以查看它们提供的所有 header 和信息,并且 /_cat命令仅列出所有可 […]
游标查询(scroll)简介 scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价。 游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。 它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引 视图 一样。 启用游标查 […]
创建索引 创建一个名为my_index的索引 PUT localhost:9200/my_index 创建映射 PUT localhost:9200/my_index/my_type/_mapping { "properties": { "name": { "type": "text" } } } 添加一个文档 PUT […]
路由一个文档到一个分片中 当索引一个文档的时候,文档会被存储到一个主分片中。Elasticsearch如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片1还是分片2中呢? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。实际上,这个过程是根据下面这个公 […]
修改max_result_window参数即可。 Elasticsearch API: PUT 127.0.0.1:9200/{indexType}/_settings 参数: { "index": { "max_result_window": 100000 } } max_result_window视具体情况决定大小 […]
常用的 match_all查询 match_all查询简单的匹配所有文档。在没有指定查询方式时,它是默认的查询: { "match_all": {}} match查询 无论你在任何字段上进行的是全文搜索还是精确查询,match查询是你可用的标准查询。 如果你在一个全文字段上使用match查询,在执行查询前,它将用正确的 […]
如果不对某一特殊的索引或者类型做限制,就会搜索集群中的所有文档。Elasticsearch转发搜索请求到每一个主分片或者副本分片,汇集查询出的前10个结果,并且返回给我们。这种搜索在ES中称为空搜索。 如下: localhost:9200/_search { "took": 67, "timed_out": false […]
准备工作 环境准备 JAVA版本 java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) […]
文档 什么是文档 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象。 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些数组值,或一些其它特殊类型诸如表示日期的字符串,或代表一个地理位置的对象: { "name": "John Smith" […]
背景&痛点 通过ES进行查询,如果需要新增查询条件,则每次都需要进行硬编码,然后实现对应的查询功能。这样不仅开发工作量大,而且如果有多个不同的索引对象需要进行同样的查询,则需要开发多次,代码复用性不高。 想要解决这个问题,那么就需要一种能够模块化、配置化的解决方案。 解决方案 思路一:配置参数 通过配置参数的方 […]
Elasticsearch基本概念 Elasticsearch是基于Lucene的全文检索库,本质也是存储数据,很多概念与传统关系型数据库类似。 传统关系型数据库与Elasticsearch进行概念对比 Elasticsearch 传统关系型数据库 indices(索引库) Databases(数据库) type(类型 […]
小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了。 随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节。 但是由于小史很久没有背过诗词了,飞一个字很难说出一句,很多之前很熟悉的诗句也想不起来。 倒排索引 吕老师:但是我让你说出带“前”字的诗句,由 […]
ElasticSearch不支持修改mapping,但是新增mapping还是挺简单的,偶尔倒是可以搞点骚操作。 添加mapping: curl -X PUT \ http://{ElasticSearchHost}:{Port}/{index}/_mapping/{type} \ -d '{ "properties" […]
问君能有几多愁,恰似一江春水向东流。