草庐IT

用ES实现根据经纬度由近及远推荐店铺

一、介绍ES中特有的类型geo_point,是用来存储地图类型的。店铺推荐、地图搜索和外卖平台等,实现目标距离你多少米,就是用这个数据类型做出来的。其中,ES支持的地图检索方式有以下几种;geo_distance:直线距离检索,如给定点A,要求返回地图上距离点A三千米的店铺geo_bounding_box:以两个点确定一个矩形,获取在矩形内的全部数据geo_polygon:以多个点,确定多边形,获取多边形内的全部数据本文则以geo_distance为例说明。二、举例说明2.1新建ES索引PUT/map{"settings":{"number_of_replicas":3,"number_of_

ES构建queryBuilder条件查询

对于不熟练的同学来说在构建Java代码查询之前一定要先将DSL查询语句,这样方便构造。首先说一下bool查询的几种逻辑关系(子查询的组合方式):must:必须匹配每个子查询,与Java的“与”相似should:选择性的匹配子查询,与Java的“或”相似must_not:必须不匹配,(不参与算分)与Java的“非”相似filter:必须匹配,(不参与算分)用来匹配自主的过滤条件查询的基本步骤是:1、创建SearchRequest对象2、准备Request.source(),也就是DSL:①QueryBuilders来构建查询条件②传入Request.source()的query()方法3、发送请

彻底解决ES 数据查询 from + size must be less than or equal to:xxx 问题

ES分页查询时出现超过一万页就爆出这个错误:Resultwindowistoolarge,from+sizemustbelessthanorequalto:[10000]but…该错误是由于es默认设置最大页数为一万的原因导致的,这样设置也是为了防止OOM。第一种解决方式:防止这个错误出现是设置index.max_result_window的值。但是这种设置对CPU和内存的消耗会非常巨大,不太建议。PUT{索引名}/_settings{"index":{"max_result_window":{你想要的from+size最大值}}}第二种解决方式:是使用es查询的深分页,使用的是scroll,

海量kafka数据入es速度优化处理

主要是涉及到kafka消费端到es的数据处理kafka端1、批量消费(效果相当明显)2、kafka设置topic多分区,增加kafka的消费并行度(效果相当明显)es端1、采用批量插入,批量插入效率较单条插入效率高很多(效果相当明显,一次批量插入数据大小限制在5M内)2、调整es中索引的副本为0(效果相当明显,es无需做主副分片的复制,减少插入数据请求等待时间)以下图为kibana中调整索引xxxx的副本数

RK3588-ES8388音频调试笔记

1.简介本文是基于RK3588平台,音频芯片ES8388调试总结。外接声卡:ES83882.音频ES8388调试2.1调试总览,调试步骤分析步骤①dts配置步骤②编译烧写,调试2.2dts配置系统声音配置:es8388_sound:es8388-sound{status="okay";compatible="rockchip,multicodecs-card";rockchip,card-name="rockchip-es8388";hp-det-gpio=gpio1RK_PD5GPIO_ACTIVE_LOW>;io-channels=saradc3>;io-channel-names="ad

ElasticSearch学习01——Windows10环境下ES安装经验与踩到的坑

由于对ES基本概念和历史演进在网上随处可查,所以本文在此不做赘述.随意本文直接讲述如何安装使用ES1.安装JDK​ElasticSearch是基于lucence开发的,也就是运行需要javajdk支持。所以要先安装JAVA环境。由于ElasticSearch5.x往后依赖于JDK1.8的,所以最好安装JDK1.8及以上版本.具体安装方法可以参考如下连接:环境连接windowsJavaJDK下载安装及环境配置超详细图文教程ubuntuUbuntu20.04系统下JDK的安装与配置2.安装ElasticSearch1.ElasticSearch下载地址:​https://www.elastic.c

ES: 设置默认值

场景:   XX对象的告警个数字段是数字,优先级字段是数字 排序要求:优先告警个数大->小,其次优先级大->小问题: 告警个数字段不存在或者值为0的情况是等价的,排序上应该是平等的.不应该存在0的大于字段不存在的处理:   对没有告警个数字段的默认设置0,那么排序的时候才正确  使用Missing-给字段设置默认值一般用于排序时,该字段没有值,使用missing赋值默认值,然后就用赋的值进行排序GETindexname/_search{"sort":[{"alarmNum":{"order":"asc","missing":0--此字段不存在的时候,值为0.与值0是一样排序}},{"prior

LearnOpenGL - Android OpenGL ES 3.0 绘制三角形

系列文章目录LearnOpenGL笔记-入门01OpenGLLearnOpenGL笔记-入门02创建窗口LearnOpenGL笔记-入门03你好,窗口LearnOpenGL笔记-入门04你好,三角形OpenGL-如何理解VAO与VBO之间的关系文章目录系列文章目录1.前言2.OpenGLES3.03GLSurfaceView和GLSurfaceView.Render4.绘制三角形5.总结参考1.前言经过一段时间OpenGL的学习,我们已经掌握了如何使用glwf在桌面端绘制简单图形。现在让我们把目光投向移动端,看看如何在Android上使用OpenGL绘制图形。本文假设你对Android基础有所

【es数据库】python 使用Elasticsearch数据库

es数据库Elasticsearch是一个开源的高扩展性搜索引擎,它可以快速地存储、搜索和分析大量的数据。使用Python语言和Elasticsearch,可以轻松地创建和操作“数据库”和“数据库表”,而且具备分布式和高扩展性的特点,适用于大规模数据存储与搜索场景。ES数据库保存数据的格式是文件形式的吗?ES是一种文档数据库,它并不像关系型数据库一样将每张表的每条记录都保存在表里面,而是将所有文档存储在一个索引中。每个文档都是一个JSON结构,包含多个字段。ES还支持对文档进行全文检索和聚合查询等高级功能。在存储上,ES将每个索引分成多个分片,每个分片都是一个Lucene实例。每个文档被存储到

项目中使用es(二):使用RestHighLevelClient操作elasticsearch

使用RestHighLevelClient操作elasticsearch写在前面搭建环境和选择合适的版本具体代码实现最后写在前面之前写了有关elasticsearch的搭建和使用springboot操作elasticsearch,这次主要简单说下使用RestHighLevelClient工具包操作es。搭建环境和选择合适的版本环境还是以springboot2.7.12为基础搭建的,不过这不重要,因为这次想说的是RestHighLevelClient操作elasticsearch,RestHighLevelClient版本使用的是7.6.2,还需要引入elasticsearch客户端maven配