elasticsearch
文章平均质量分 74
干了这杯柠檬多
运气是实力的一部分,但我运气向来不好,所以只能靠实力去弥补!
展开
-
es中索引那些事
在ES中将所有的词项通过字典顺序排列好后存储起来,这个数据结构叫词项字典(Term Directory)。实际业务中每一个词项并不只存在一个文档中,而是关联一个文档id的列表,ES中称为Posting List(关联文档ID的列表)。并且ES将词项的前缀(Term Index)拿出,构建了一个FST(相当于Term Directory的index)原创 2023-06-16 17:40:45 · 1530 阅读 · 0 评论 -
es7不使用父子和嵌套关系来实现一对多功能
背景:现有一个es查询,不得已情况下在es中做了父子关联,但es是一个搜索框架,不适合逻辑运算,所以父子查询以及nested嵌套查询都特别慢。在实际场景下,有一个3亿数据量的es索引里面还包含了一部分子查询,每次调用子查询的时候都会超时,所以将这块从父子关系改为动态标模式的查询关联,来提高查询速度。比如我现在的关系是这样的:门店商品和上架渠道是1对多的关系。在一个门店商品索引里商品信息存在门店索引维度,渠道信息存在渠道维度(如:当前渠道上架时间)如上述情况采用动态mapping的结构来实现这样的关系:1.建原创 2022-06-07 18:02:05 · 584 阅读 · 1 评论 -
es QueryBuilder实际场景应用
java中es的QueryBuilder的构建方式这里只列举经常使用的,都是基于boolQuery查询。1.查询list条件 termsQuery,常用于状态值,id等2.查询单个条件termQuery,常用于字符串查询,如名称等3.查询范围rangeQuery,常用于一个范围查询,如价格区间等4.搜索词拆分模糊查询 matchQuery,常用于内容检索,如文章内容等5.子查询hasChildQuery,子查询最好用should连接public QueryBuilder ...原创 2022-03-26 13:52:27 · 5880 阅读 · 1 评论 -
零售商品ES同步方案实践比较
1、需求背景在零售场景中,有大量的搜索和排序的场景,比如典型的商品名称,商品条码,外部商品编码等搜索,还有按照价格,销量排序等操作,在微服务的架构下,这些数据大多数都是异构的,代码实现在不同的服务中,用mysql来实现这样复杂的操作,就显得捉襟见肘,就需要额外的工具或中间件来完成这样的功能。总体来说,有以下两种思路: 设计一个大宽表,每次业务的增删改操作都再写一份到这张表中。 引入专门的中间件来解决该问题,比如es。 前者的双写需要花大量的开发成本,而且在复杂业务场景下,容易出错转载 2022-02-15 16:24:32 · 1260 阅读 · 0 评论 -
es语法入门
Elasticsearch简介Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。能够达到实时搜索,稳定,可靠,快速,安装使用方便。客户端支持Java、.NET(C#)、PHP、Python、Ruby等多种语言。ElasticSearch与Lucene的关系Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库(框架)但是想要使用Lucene,必须使用Java来作为开发语言并将其直接集成到你的应用中,并且Lucene的配置及使用非常复杂原创 2022-01-09 19:34:13 · 1048 阅读 · 0 评论 -
windows环境 es及基本插件安装
一.elasticSearches下载 Download Elasticsearch | Elastic下载最新版本7.15版本运行报错,选用7.6.1版本windows下解压 运行bin文件夹下的elasticsearch.bat,如果没有额外配置 访问 http://127.0.0.1:9200/ 出现内容即成功!二.可视化工具Kibana2.客户端Kibana下载 Download Kibana Free | Get Started Now | Elastic与es版本保持一致原创 2022-01-04 14:53:32 · 1287 阅读 · 0 评论