Elasticsearch生产实战
文章平均质量分 77
Elasticsearch相关知识,实战经历
坚持是一种态度
男,研究生学历,中国科大硕士,高级软件工程师,作为 大数据分析/架构师/Java开发/运维 岗位角色进行工作。喜欢读书、听音乐、看电影和看动漫,热爱生活,热爱学习。
展开
-
Elasticsearch各个版本重要特性
Elasticsearch各个版本重要特性Elasticsearch 5Elasticsearch 6.0Elasticsearch 7.0Elasticsearch 8.0Elasticsearch 5首先说明下,ES是从版本2直接跳到5的,主要是为了和Elastic Stack其他组件保持版本一致ES5,在现在来说是比较老的版本了,就不多介绍了建议大家使用ES7,或者直接使用ES8Elasticsearch 6.0移除type,在 6.0 里面,开始不支持一个 index 里面存在多原创 2022-06-29 21:02:03 · 10010 阅读 · 0 评论 -
Elasticsearch基础知识点总结介绍
Elasticsearch基础知识点总结介绍总体原理基本概念基本数据类型总体Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web和无架构JSON文档的分布 式,多租户能力的全文搜索引擎。Elasticsearch是用Java开发的,根据[Apache]许可条款作为开源 发布。原理Lucene 是著名的搜索开源软件,ElasticSearch 和 Solr 底层用的都是它。 分段存储是 Lucene 的思想。分词是给检索用的。...原创 2022-06-28 21:09:01 · 358 阅读 · 0 评论 -
生产项目中使用的Elasticsearch相关API介绍
文章目录搜索ElasticsearchTemplate搜索方法查询全部 matchAllQuery布尔查询 boolQuery精确匹配 termQuery短语匹配 matchPhraseQuery无评分查询 constantScoreQuery普通查询 matchQuery是否有值 existsQuery范围查询 range索引Bboss索引库增删改查bulk分词搜索ElasticsearchTemplate使用ElasticsearchTemplate,但是是自己定义的bean,Elasticse原创 2022-04-13 13:45:41 · 2503 阅读 · 0 评论 -
使用canal监控mysql数据库实现elasticsearch索引实时更新
文章目录业务场景安装下载安装数据库启用row binlog使用修改配置文件canal.properties配置单个连接配置多个连接配置rabbitMQ程序改动canal源码微服务消费mq业务场景使用elasticsearch作为全文搜索引擎,对标题、内容等,实现智能搜索、输入提示、拼音搜索等elasticsearch索引与数据库数据不一致,导致搜索到不应被搜到的结果,或者搜不到已有数据索引相关业务,影响其他业务操作,如索引删除失败导致数据库删除失败为了减少对现有业务的侵入,基于数据库层面,对信息原创 2022-03-28 18:07:42 · 3898 阅读 · 3 评论 -
elasticsearch分片损坏unassigned报错 no_valid_shard_copy no segments file checksum failed hardware problem
elasticsearch无法写入,分片损坏,重启后unassigned无法重现分片,一直red无法恢复GREEN,报错信息no_valid_shard_copy no segments file checksum failed hardware problem原创 2022-03-06 12:08:55 · 3981 阅读 · 0 评论 -
elasticsearch重启后,unassigned索引重新分片失败YELLO、RED恢复处理
elasticsearch索引重启后,集群状态yellow red有时候自动恢复成green,有时候长时间不恢复显示unassigned,索引分片失败显示initializing,但长时间完成不了一直translog,恢复卡死到百分比原创 2022-01-06 14:51:33 · 3040 阅读 · 0 评论 -
Elasticsearch,同样的检索条件查询语句,结果得分不同
文章目录问题处理原因探究解决问题问题的现象是这样的,搜索结果有17条,分页参数为10,查询第二页时,有时候出现5条结果,有时候出现10条结果,就不是正确的7条使用search_after搜索,先得到sortValue再请求第二页数据处理原因探究search_after搜索,对于第一页以外的搜索,都是两次搜索(超过10000条会触发多次搜索),由于两次搜索请求对同一条数据的得分不同,导致根据得分search_after搜索结果出现错误scroll搜索,是一次性把结果请求到,缓存起来,这期间原创 2021-09-16 21:52:28 · 1058 阅读 · 1 评论 -
elasticsearch:使用top_hits聚合获取分组列表
文章目录业务需求实现java代码kibana请求体返回示例业务需求需要获取分组列表,查询返回值不是一个列表,而是根据某个字段分组每组返回前5条,不足5条,则返回全部按照时间倒序实现elasticsearch提供了top_hits聚合函数,支持返回前几条TermsAggregationBuilder和TopHitsAggregationBuilder2个聚合函数结合使用,实现该效果java代码具体代码如下: @Override public Map<String,原创 2021-08-15 18:31:16 · 2559 阅读 · 5 评论 -
elasticsearch:查询评分排除某些查询条件constantScoreQuery
IDF: Inverse Document Frequency缩写,表示该term在所有文档中出现的频率。TF: Term Frequency的缩写,表示该term在当前document出现的频率。原创 2021-08-08 22:14:42 · 2312 阅读 · 0 评论 -
Elasticsearch:搜索相同内容,但评分不同,排序混乱问题解决
问题针对搜索结果,需要根据相关度智能排序但是对于某些文本内容相似,搜索得分一致,需要启用其他排序规则,例如时间后面又发现,对于这些相似的文本,部分文本得分score和其他文本不同,导致排序排在了后面以以下数据为例,对于模糊搜索“上半年经济运行”需要根据标题检索,然后得分相同的再根据时间倒序排序。但是实际上2009年的出现在第一条,2021年的在第二条,这是不允许的[ { "createDate": "2009-07-21", "id": "7917561原创 2021-08-02 19:06:31 · 1864 阅读 · 2 评论 -
Elasticsearch深度分页和高亮显示:search_after
文章目录问题scroll 分页解决问题分页查询,超过10000条数据,from+size会报错scroll游标分页,可以深度分页,只取最后一页的结果,效率还可以但是scroll分页,如果返回source和字段高亮,查询会很慢scroll 分页不获取source时,scroll 分页查询还是很快的,可以查到当前页数据后,再遍历查询,获取每条数据的值。至于高亮,只能自己去实现了。@Override public Pagination scrollSearchForPage(EsQuer原创 2021-08-02 08:42:45 · 635 阅读 · 0 评论 -
根据查询条件,删除Elasticsearch索引_delete_by_query
需求需要删除特定索引不想修改代码,重启应用服务,就需要直接在elasticsearch服务里删除解决elasticsearch是有提供根据查询删除方法的先查询,确定有多少结果,避免误删除查询单条记录curl http://192.168.40.3:9200/huangshan_ex9_4/6796612/8885822条件查询,match_phrase表示精确匹配curl -X POST "http://192.168.40.3:9200/huangshan_ex9_4/67原创 2021-03-26 17:20:59 · 895 阅读 · 0 评论 -
elasticsearch分词器介绍和中文分词代码示例
文章目录分词器介绍ikik-pinyinngram代码示例说明详细代码部分场景测试结果示例分词器介绍ik中文分词器,免费,使用方便,自带词库,可以指定自定义词库ik_smart 智能分词,较max分词粒度更粗,结果数更少。一般在创建索引时,对大量文本的内容,使用smart分词ik_max_word 尽可能多的分词,一般搜索时对检索条件使用maxik-pinyin中文拼音分词器支持简拼、全拼等ngramelasticsearch自带的分词器,中英文都可以使用直接对内容分词,会按原创 2020-09-19 11:50:04 · 450 阅读 · 0 评论 -
让人无语:Centos7.5 修改limits.conf open files后重启也不生效的原因和解决办法
文章目录Centos7.5 修改limits.conf open files后不生效错误排错历程Centos7.5 修改limits.conf open files后不生效错误elasticsearch启动时,报错max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]排错历程之前遇到过,参考老方法直接处理(如下):切换到root账户下:vi /etc/s原创 2020-08-06 14:25:16 · 5274 阅读 · 5 评论 -
EsRejectedExecutionExceptionindices:data/read/mget[shard]异常处理与线程池设置
报错elasticsearch查询失败java日志:org.frameworkset.elasticsearch.ElasticSearchException: java.net.SocketTimeoutException: Read timed out at org.frameworkset.elasticsearch.client.ElasticSearchRestClient._executeHttp(ElasticSearchRestClient.java:636) at org.f原创 2020-06-30 23:18:53 · 1414 阅读 · 4 评论 -
elasticsearch批量提交索引失败Malformed action/metadata expected START_OBJECT but found [VALUE_NULL]
更新索引失败:{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Malformed action/metadata line [2], expected START_OBJECT but found [VALUE_NULL]"}],"type":"illegal_argument_exception","reason":"Malformed action/metadata line [2], expected STA原创 2020-05-31 18:56:48 · 10792 阅读 · 2 评论 -
Elasticsearch实现对某属性等于某值,或为空为null的查询
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); boolQuery.should(QueryBuilders.matchPhraseQuery("organDn",queryVO.getOrganDn())); boolQuery.should(Query...原创 2020-05-31 17:36:50 · 7703 阅读 · 0 评论 -
Elasticsearch使用http接口更新数据失败:ElasticSearchException: Socket Timeout for 120000ms
现象前一天晚上重建了部分索引,大概几万条吧;第二天早上发现搜索有问题。使用Bboss封装的http接口查询、更新、删除索引失败使用es的java api查询是可以的,更新删除没有测试报错:ElasticSearchException: Socket Timeout for 120000ms3个节点,一主二副,jvm参数配置为16G。索引分片为3,副本为2,{"settings":{"...原创 2020-04-19 11:45:45 · 3719 阅读 · 2 评论 -
elasticsearch创建索引抛异常"error":{"type":"null_pointer_exception","reason":null}
出错es集群,3个节点创建索引报错,空指针异常null_pointer_exception只有1个节点时正常,新增两个节点后报错java程序调用elasticsearch批量更新方法返回信息:{"index":{"_index":"cz_govb","_type":"160686340","_id":"205854415","status":500,"error":{"type":"...原创 2020-02-21 19:42:21 · 9414 阅读 · 1 评论 -
Elasticsearch排序Fielddata is disabled on text fields by default. Set fielddata=true on [publishDate]
{ "error": { "root_cause": [ { "type": "illegal_argument_exception", "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [publishDate] in ord...原创 2020-02-21 03:22:08 · 988 阅读 · 0 评论 -
使用Elasticsearch聚合搜索进行数据的分类统计
HTTP请求单个条件聚合,根据某一个维度去聚合统计GET /zwfw/_search{ "size": 0, "aggregations" : { "organDn.keyword_arr" : { "terms" : { "field" : "organDn.keyword", "size" : 100, "m...原创 2020-02-02 22:58:17 · 2295 阅读 · 0 评论 -
elasticsearch插件kibana安装教程
kibana安装wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.2-linux-x86_64.tar.gz或者本地下载好放到服务器上tar -xvf kibana-5.5.2-linux-x86_64.tar.gz注意版本与elasticsearch一致(我这儿使用的es是5.5.2);修改配置文件config...原创 2019-10-20 16:15:25 · 324 阅读 · 0 评论 -
Java调用Elasticsearch api 创建客户端报错NoNodeAvailableException[None of the configured nodes are available
NoNodeAvailableException[None of the configured nodes are available这个报错,意思就是你要连接的节点不可用,连不上,一般有以下几个原因:1、ES服务没启动,肯定连不上,可以访问下9200端口试下;2、端口使用错了,在Java创建es的client连接,要使用9300端口(TCP端口,客户端连接使用此端口,在配置文件el...原创 2019-10-20 15:52:42 · 610 阅读 · 0 评论 -
使用Elasticsearch第三方包Bboss批量提交新增、修改、删除请求
思路使用Bboss的Http请求,核心还是ES原生的http请求接口,自己懒得写,直接使用Bboss封装好的maven依赖<dependency> <groupId>com.bbossgroups.plugins</groupId> <artifactId>bboss-elasticsearch-...原创 2019-07-31 19:24:48 · 1476 阅读 · 0 评论 -
Elasticsearch 第三方工具包Bboss的简单使用
简介真的只是简单使用,Bboss自己宣传bboss-elasticsearch最好用的Elasticsearch的java rest api,核心是dsl脚本和一些自己封装的使用。我只是使用了它封装的http接口,但是用起来真的很方便。maven依赖<!--elasticsearch --> <!-- spring-data-elasticsearch --...原创 2019-07-31 19:45:25 · 4849 阅读 · 0 评论 -
分布式全文检索引擎Elasticsearch简单介绍
1、Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。Elasticse...原创 2019-05-01 16:21:03 · 466 阅读 · 0 评论 -
centos7环境Elasticsearch5.5.2安装
Elasticsearch安装1、下载ESwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz或者在windows下载好,放到服务器上tar -xvf elasticsearch-5.5.2.tar.gz注意版本:5.5.2注意:需要jdk1.8+2、修改配置修改...原创 2019-06-04 14:58:06 · 354 阅读 · 0 评论 -
安装插件ElasticSearch-Head
安装插件ElasticSearch-Head1.1 安装nodejsa. 下载node.jswget https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-x64.tar.xzxz -d node-v6.9.2-linux-x64.tar.xztar -xvf node-v6.9.2-linux-x64.tarrm -rf node-v6.9...原创 2019-04-30 16:06:08 · 482 阅读 · 0 评论 -
docker容器里,给Elasticsearch卸载x-pack插件,安装ik中文分词插件
卸载x-pack插件,安装ik普通环境卸载x-pack安装ikdocker容器里普通环境卸载x-pack./bin/elasticsearch-plugin remove x-pack安装ik./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/down...原创 2019-04-30 16:02:19 · 3731 阅读 · 0 评论 -
elasticsearch5.5 Reindex API 异步重建索引
elasticsearch Reindex API 异步重建索引Reindex API注意基本用法设置version_type设置version_type为internal设置version_type为external设置op_type根据限制条件重建索引Reindex API这是针对Elasticsearch官方文档的 Reindex API部分的翻译。在Elasticsearch的生产环境...翻译 2019-02-19 17:23:14 · 1934 阅读 · 0 评论 -
spring boot项目,Elasticsearch的一种使用方式
最近在做接口服务的项目,用的是微服务架构spring cloud,主要是基于spring boot,使用idea构建真的很方便。离线数据搜索服务,使用的是Elasticsearch,版本5.2.0。在使用过程中,不太顺利,建立client连接一直失败,最后发现是spring boot的原因,得到了解决。 Elasticsearch和Solr都是搜索引擎,原创 2017-07-11 13:42:24 · 6396 阅读 · 1 评论