
Elasticsearch
江上渔者21号
这个作者很懒,什么都没留下…
展开
-
ElasticSearch修改refresh_interval的间隔
持久化变更 »近实时搜索编辑随着按段(per-segment)搜索的发展,一个新的文档从索引到可被搜索的延迟显著降低了。新文档在几分钟之内即可被检索,但这样还是不够快。磁盘在这里成为了瓶颈。提交(Commiting)一个新的段到磁盘需要一个fsync来确保段被物理性地写入磁盘,这样在断电的时候就不会丢失数据。 但是fsync操作代价很大; 如果每次索引一个文档都去执行...转载 2019-03-18 11:13:15 · 39887 阅读 · 0 评论 -
es 中的过滤器
当进行精确值查找时,我们会使用过滤器(filters)。过滤器很重要,因为它们执行速度非常快,不会计算相关度(直接跳过了整个评分阶段)而且很容易被缓存。我们会在本章后面的过滤器缓存中讨论过滤器的性能优势,不过现在只要记住:请尽可能多的使用过滤式查询。内部过滤器的操作编辑在内部,Elasticsearch会在运行非评分查询的时执行多个操作: 查找匹配文档. te...转载 2019-03-04 16:50:42 · 1237 阅读 · 0 评论 -
亿级 Elasticsearch 性能优化
前言最近一年使用 Elasticsearch 完成亿级别日志搜索平台「ELK」,亿级别的分布式跟踪系统。在设计这些系统的过程中,底层都是采用 Elasticsearch 来做数据的存储,并且数据量都超过亿级别,甚至达到百亿级别。所以趁着有空,就花点时间整理一下具体怎么做 Elasticsearch 性能优化,希望能对 Elasticsearch 感兴趣的同学有所帮助。背景Elast...转载 2019-03-04 16:22:17 · 564 阅读 · 0 评论 -
lucene字典 实现原理
1 lucene字典 使用lucene进行查询不可避免都会使用到其提供的字典功能,即根据给定的term找到该term所对应的倒排文档id列表等信息。实际上lucene索引文件后缀名为tim和tip的文件实现的就是lucene的字典功能。 怎么实现一个字典呢?我们马上想到排序数组,即term字典是一个已经按字母顺序排序好的数组,数组每一项存放着term和对应的倒排文档id...转载 2019-03-14 08:39:58 · 140 阅读 · 0 评论 -
白话 IT 之 从 ElasticSearch 到 ZooKeeper
这里,数据结点是存放搜索索引项的。非 master 的 client 节点简单说来就是一个智能的负载平衡器,可以处理搜索中的一些简单的步骤。master 结点顾名思义,主要是用来做 cluster 的管理,而不去做计算量比较大的实际搜索的操作或者处理。换句话说,有点类似一个内置的 zookeeper。ElasticSearch 在对 master 节点的选举上,至今仍存在的一个问题就是著...转载 2019-03-12 07:46:44 · 1940 阅读 · 0 评论 -
elasticSearch嵌入桶中的学习与实践
https://www.elastic.co/guide/cn/elasticsearch/guide/cn/_buckets_inside_buckets.html{ "size":0, "query":{ }, "aggregations":{ "total_count":{ "terms":{ ...转载 2019-03-05 15:31:41 · 140 阅读 · 0 评论 -
模糊匹配正则表达式
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_wildcard_and_regexp_queries.html{ "query": { "wildcard" : { "content" : "?100543*" } }, "from": 0, ".转载 2019-03-05 12:01:37 · 1443 阅读 · 1 评论 -
有关elasticsearch分片策略的总结
最近在优化部分业务的搜索吞吐率,结合之前优化过写请求的经验,想和大家讨论下我对es分片在不同场景下的分配策略的思路原先普通索引我的分片策略是: 主分片=节点数,副本=1,这样可以保证业务数据一定的可用性(丢失一个节点数据完整),且书局是均匀的读写请求在各个节点也是均匀的。该模式目前看来并不是一个最好的方案,首先对于写请求,请求会优先落到主分片,再由主分片下发到各个副本,默认半数...转载 2019-03-10 10:39:09 · 579 阅读 · 1 评论 -
Elasticsearch写入原理深入详解
https://blog.youkuaiyun.com/laoyang360/article/details/84727820MySQL DELETE 删除语句加锁分析http://www.fordba.com/lock-analyse-of-delete.html转载 2019-03-10 10:37:15 · 231 阅读 · 0 评论 -
dsl语句
糊糊匹配和精切匹配 查询会报错{ "query": { "match" : { "caseId" : 22311575 } , "bool": { "must": [ { "match_all": {} } ], "must_not&quo原创 2019-03-04 17:29:51 · 704 阅读 · 0 评论 -
Elasticsearch 时间类型总结
Elasticsearch 可以写入、查询不同的时间类型,但当遇到 Unix 时间戳和其他时间格式的时候会有点混乱,因此本文主要是总结一下各种时间类型和其他的表示方式。1 日期类型JSON没有日期类型,因此在 Elasticsearch 中可以表达成:日期格式化的字符串,比如: "2015-01-01" 或者 "2015/01/01 12:10:30"; 毫秒级别的long类型...转载 2019-03-17 11:02:29 · 5809 阅读 · 0 评论 -
浅析ES的_source、_all、store、index
前言Elasticsearch中有大量关键概念容易混淆,对于初学者来说是噩梦:_source字段里存储了什么? index属性的作用是什么? 何时应该开启_all字段? store属性和_source字段有什么关系? store属性和_all字段有什么关系? 什么情况下不用保留_source字段?本文通过问答及展开描述的方式,深入理解Elasticsearch中的_source...转载 2019-03-17 08:29:10 · 6852 阅读 · 0 评论 -
elastic 的基本总结
目录1 filter 比 must 快的原因:2 elastic 写入的时候的锁1 scroll 每次查询快照数据,2 结构性搜索3 全局搜素(1)基于词项的查询:(2) 单个词查询(2) 多个词的查询(3)组合查询评分计算编辑(4) 多字段搜索(5) 短语匹配(6) 部分匹配4 分数计算的相关度5 聚合 1 filter 比 ...原创 2019-03-12 08:02:20 · 411 阅读 · 0 评论 -
es 中number和keyword的选型问题傻傻分不清楚
上周,在某多多搬砖的一位朋友在微信上找我咨询,说他们公司一个ES集群从2.4升级到5.5以后,一个很简单的Query查询耗时突然从几十毫秒,变成800-1000毫秒,几十倍的性能下降!原始问题链接:# Why my search slow?这个查询非常简单,就是3个过滤条件求交集而已:{ "from": 0, "size": 10, "query": ...转载 2019-03-16 10:45:25 · 2697 阅读 · 0 评论 -
全文匹配
{ "query": { "match" : { "content" : "我 要" } }, "from": 0, "size": 10, "sort": []}{ "took": 184, "timed_out": false, "_shards&转载 2019-03-05 11:05:17 · 530 阅读 · 0 评论 -
phrase短语匹配
就像match查询对于标准全文检索是一种最常用的查询一样,当你想找到彼此邻近搜索词的查询方法时,就会想到match_phrase查询。GET /my_index/my_type/_search{ "query": { "match_phrase": { "title": "quick brown fox" }...转载 2019-03-05 11:15:07 · 509 阅读 · 0 评论 -
最佳字段查询优化
最佳字段查询调优编辑当用户搜索 “quick pets” 时会发生什么呢?在前面的例子中,两个文档都包含词quick,但是只有文档 2 包含词pets,两个文档中都不具有同时包含两个词的相同字段。如下,一个简单的dis_max查询会采用单个最佳匹配字段,而忽略其他的匹配:{ "query": { "dis_max": { ...转载 2019-03-05 08:39:16 · 325 阅读 · 0 评论 -
ES 查询优化(一)
1、能用term就不用match_phraseThe Lucene nightly benchmarks show that a simple term query is about 10 times as fast as a phrase query, and about 20 times as fast as a proximity query (a phrase query with ...转载 2018-12-06 17:27:02 · 2172 阅读 · 0 评论 -
用PROFILE API 定位 ES 慢查询
转载处:https://www.easyice.cn/archives/267有时在发起一个查询时,他会被延迟,或者响应时间很慢,查询缓慢可能会有多种原因;范围包括 shard 问题,或者计算查询中的某些元素。 从 elasticsearch 2.2版本开始提供 Profile API 供用户检查查询执行时间和其他详细信息。在这篇博客中,我们将探讨如何使用profile API查看查询计时。...转载 2018-12-06 16:56:16 · 2159 阅读 · 0 评论 -
es dsl 空值和有值的匹配
非空匹配 返回在原始字段中至少有一个非空值的文档:比如下面的字段都因为有值而被匹配{ "user": "jane" }{ "user": "" } ①{ "user": "-" } ②{ "user": ["jane"] }{ "user": ["jane", null ] }原创 2018-12-06 11:44:38 · 3222 阅读 · 0 评论 -
Elasticsearch dsl 搜索返回结果的认识
{ "took": 36, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 13832623,转载 2018-12-05 21:25:22 · 914 阅读 · 0 评论 -
常用的dsl查询语句
{ "size":0, "query":{ "bool":{ "must":[ { "term":{ "level_1":{ "value"原创 2018-12-05 21:06:38 · 2168 阅读 · 0 评论 -
elasticsearch的keyword与text的区别(5.4)
keyword和text都是从string拆分出来。keyword默认不分词,用于精准查询(term)text会被分词,比如“苹果笔记本”,可能会被拆分为“苹果”、“笔记本”。如果用term查询“苹果笔记本”,结果为空es2.*用户可忽略该文章。作者不会使用2.*版本的es!!!当初接触es,最惊讶就是他的版本速度发布太快,这次主要讨论keyword与text的区别...转载 2018-12-05 20:56:02 · 578 阅读 · 0 评论 -
认识ElasticSearch的API,并深入Search的使用
0.引言本文罗列介绍了ES提供的公共API,重点围绕数据检索主题相关API进行说明总结。1.概述Elasticsearch提供全功能的RESTful API。以基于HTTP协议传输交换JSON数据的方式,向用户提供访问服务。具体的访问方式可按照参数的提交方法区分为以下两种:通过URI参数提交,比如:curl 'localhost:9200/bank/_search?q=*&...转载 2018-12-07 16:43:56 · 460 阅读 · 0 评论 -
elastic 比较mapping里边2个变量的大小
一:传统方式可以用脚本GET /_search { "query": { "bool" : { "must" : { "script" : { "script" : { "inline": "doc['field1'].value > doc['field2'].value", "lang": "painless&qu翻译 2018-12-30 15:59:13 · 1010 阅读 · 0 评论 -
keyword 才可以进行索引
GET log.csc-dtc-waimai-adapter-service_all/_search{ "query":{ "fuzzy": { "message" : "ERRO" } }}模糊查询编辑fuzzy查询是term查询的模糊等价。 也许你很少直接使用它,但是理解它是如何工作的,可以帮助你在更...转载 2019-03-20 14:20:08 · 331 阅读 · 0 评论 -
单字符串查询
PUT /my_index/my_type/1{"title": "Quick brown rabbits","body": "Brown rabbits are commonly seen."}PUT /my_index/my_type/2{"title": "Keeping pets healthy","body": "My quick b转载 2019-03-05 08:31:32 · 256 阅读 · 0 评论 -
Elasticsearch 搜索名词的理解
在进一步使用 Elasticsearch 之前,让我们先了解几个关键概念。在逻辑层面:Index (索引):这里的 Index 是名词,一个 Index 就像是传统关系数据库的 Database,它是 Elasticsearch 用来存储数据的逻辑区域 Document (文档):Elasticsearch 使用 JSON 文档来表示一个对象,就像是关系数据库中一个 Table 中的一行...转载 2018-11-02 23:55:19 · 494 阅读 · 0 评论