草庐IT

es6-features

全部标签

精选8道ES高频面试题和答案,后悔没早点看。

不要再干巴巴的背诵八股文了,一定要结合具体场景回答面试问题!前言我们在回答面试题的时候,不能干巴巴的去背八股文,一定要结合应用场景,最好能结合过去做过的项目,去和面试官沟通。这些场景题虽然不要求我们手撕代码,但是解决思路和关键方法还是要烂熟于心的。这篇文章不仅给出了常见的面试题和答案,并且给出了这些知识点的应用场景、也给出了解决这些问题的思路,并且结合这些思路提供了关键代码。这些代码段都是可以直接CV到本地运行起来的,并且都写清楚了注释,欢迎大家动起手来操练起来,不要死记硬背八股文。1.模糊搜索如何在Elasticsearch中执行模糊搜索(FuzzySearch)?解答:在Elasticse

es-索引过期设置

使用场景    es存储日志以供查询,对于日志量较大的系统,我们一般都是自动每天创建索引(相当于mysql中的按天进行水平维度分表),而且我们一般都会把这个业务日志的功能做成一个查询界面,赋能出去。我们的做法是,设置过期索引,因为数据量比较大。但是我们每天的表都不一样,如何实现查询的时候动态赋值索引的名称呢?可以通过定义索引的别名的方式来实现。具体的可以参考                                                                              图形化操作 Kibana7.9.2设置elasticsearch索引过期时间,到期自

ES scroll查询的坑点

1.scroll查询scroll查询是ES中为了解决一次获取不到全部数据的一种解决方案。2.使用姿势第一次查询GET/ip:port/table/_search/scroll?scroll=1m{ "query":{ "match_all":{} }}第二次查询(第二次查询,可以不加scroll的失效时间)GET/_search/scroll{ "scrollid":"*******************"}第2+n次访问(第三次及之后的查询必须要加scroll的失效时间)GET/_search/scroll{ “scroll":"1m", "scrollid":"************

django集成es(django-elasticsearch-dsl-drf)

前提介绍在此版本下,es自动与mysql或其他数据库,进行数据同步(修改,删除.新增),update并不会自动同步1.准备模拟数据,安装json-server(不安装也可以.本文没有安装)json-server的安装https://www.jianshu.com/p/920d73fc32de#本文借鉴https://www.jianshu.com/p/920d73fc32de#安装(windows上安装),以管理员身份打开cmdnpminstall-gjson-server#测试安装成功json-server-h#在D盘新建一个文件夹JsonServer#进入JsonServer文件夹,初始化

es——java代码实现聚合

业务需求在搜索页面的顶部,包含很多过滤项:分类、品牌这些过滤项应该从索引库中聚合得到。 接口说明: controller层:/***过滤项聚合*/@PostMapping("/filters")publicMap>filters(@RequestBodyRequestParamsparams){log.info("搜索栏自动补全===前后端联通=="+params);returnisearchService.filters(params);} service层:/***过滤项聚合*/Map>filters(RequestParamsparams); service实现类:/***过滤项聚合**

docker部署单机ES集群7.2.0

部署步骤初始化es配置文件--拉取es镜像dockerpullelasticsearch:7.2.0--创建挂载目录[data:存放索引数据,plugins:存放es插件]mkdir-p/bkb/runtime/docker/es/config/data1mkdir-p/bkb/runtime/docker/es/config/data2mkdir-p/bkb/runtime/docker/es/config/data3mkdir-p/bkb/runtime/docker/es/config/plugins1mkdir-p/bkb/runtime/docker/es/config/plugin

ES常见问题(1)-解决ElasticSearch每次只能返回10条数据

项目场景:使用ElasticSearch查询分页数据问题描述有时候,我们需要使用ElasticSearch来分词查询,并分页返回指定的数据条数,但是当我们每次想得到分页数据条数超过十条的时候,ElasticSearch总是只能返回十条原因分析:因为ElasticSearch为了查询的速度,在默认的情况下已经设置了分页数据只能返回10条,所以我们需要通过改变size(返回数据的大小)去改变分页查询的数据条数大小,若没有设置size只能是返回10条解决方案:(1)使用kibanna解决GET /article_content/_search{  "query": {    "match_all":

ES Search After 分页查询

 需求分析,如上图对基金经理数据进行分页查询,并可根据年化回报率,综合得分进行排序SeachAfter两点比较重要:排序字段排序字段值1.排序字段一定要包含唯一值字段,即不重复,可用es自带id,因为排序的原理,类似数据库深度分页,条件包含上一页最后一条数据ID,效率比较高,同理要把这个唯一值作为下一页查询条件2.如果没有业务相关的排序字段(无上年化回报,综合得分)怎么查询排序字段默认为es默认_id,且倒序,srollId作为下页查询条件3.查询包含业务条件时,需要注意排序字段包含业务条件,且排序顺序,先根据业务条件排序,再根据_id排序,同时要传入上一页排序字段的值及srollId4.首页

ES根据日期查询数据

1实体类写入ES在写入ES库的时候,日期格式需要转换成ES可以识别的日期格式:yyyy/MM/ddHH:mm:ss然后写入ES库即可一般是根据时间区间查询,所以如果有空字段可以设置一个默认值方便查询//如果结束时间为空手动设置成2099年12月31号为结束时间if(ObjectUtil.isEmpty(esMedList.getEnddate())){esMedList.setEnddate(DateUtil.parseDate("2099-12-31"));}IndexRequestrequest=newIndexRequest(indexName);request.id(esMedList

Java中使用es条件构造器BoolQueryBuilder

前言由于es在java中查询没法像mybatis那样方便,而且es的构造器使用也比较繁琐,理解不是很方便,所以写一篇文章来记录es构造器BoolQueryBuilder查询时各种条件的构造的正确姿势。教程1.构造准备//1.构建SearchRequest请求对象,指定索引库SearchRequestsearchRequest=newSearchRequest("data_info");//2.构建SearchSourceBuilder查询对象SearchSourceBuildersourceBuilder=newSearchSourceBuilder();//2.1这个条件用于返回所有命中条件