当前位置: 首页 > news >正文

Elasticsearch使用中出现的错误

Elasticsearch使用中出现的错误

1、分页查询异常

在分页的过程中出现了一个问题是当查询的数据超过10000条的时候报了异常:

from + size must be less than or equal to: [10000]

这个问题最快捷的解决方式是增大窗口大小:

curl -XPUT http://127.0.0.1:9200/customer/_settings -d '{ "index" : { "max_result_window" : 500000}}'

但是对应增大窗口大小,会牺牲更多的服务器的内存、CPU资源,在我们这边的使用场景下,这样做是划不来的,

因为我们的目的是做目标数据的搜索,而不是大规模的遍历,所以我们这边会直接放弃超过这个数量的查询,也就

是上面的这段代码:

if (from > 10000) {System.out.println("测试:超过10000条直接中断");break;
}

2、SpringBoot Elasticsearch 7.x 聚合查询遇到的问题

2.1 时间的问题

报错:

java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {},ISO

resolved to 2019-04-30T16:00 of type java.time.format.Parsed

解决:

POJO 类中 Date 类型转化为 LocalDate 类型

// 创建时间
@Field(type = FieldType.Date, format = DateFormat.date_hour_minute_second)
private LocalDate createTime;// 更新时间
@Field(type = FieldType.Date, format = DateFormat.date_hour_minute_second)
private LocalDate updateTime;

先试第一个再试第二个

java.time.LocalDate

org.joda.time.LocalDate

2.2 无法进行聚类的问题

报错:

org.springframework.data.elasticsearch.UncategorizedElasticsearchException:

Elasticsearch exception [type=search_phase_execution_exception, reason=all shards

failed]; nested exception is ElasticsearchStatusException[Elasticsearch exception

[type=search_phase_execution_exception, reason=all shards failed]]; nested:

ElasticsearchException[Elasticsearch exception [type=illegal_argument_exception,

reason=Text fields are not optimised for operations that require per-document field

data like aggregations and sorting, so these operations are disabled by default.

Please use a keyword field instead. Alternatively, set fielddata=true on

[categoryName] in order to load field data by uninverting the inverted index. Note

that this can use significant memory.]]; nested: ElasticsearchException[Elasticsearch

exception [type=illegal_argument_exception, reason=Text fields are not optimised for

operations that require per-document field data like aggregations and sorting, so

these operations are disabled by default. Please use a keyword field instead.

Alternatively, set fielddata=true on [categoryName] in order to load field data by

uninverting the inverted index. Note that this can use significant memory.]];

解决:

报错中有这样一句:set fielddata=true on [categoryName]

如果聚类结果是需要分词的:

在 POJO 类中添加:fielddata=true

@Field(type = FieldType.Keyword, fielddata=true)
private String categoryName;

设置了之后发现不生效,还需要进行如下操作:

PUT shop_info/_mapping/docs
{"properties": {"categoryName": {"type": "text","fielddata": "true"}}
}

如果聚类结果是不需要分词的,可以这样处理:

builder.addAggregation(AggregationBuilders.terms("skuCategory").field("categoryName.keyword"))

2.3 类型转换的问题

报错:

java.lang.ClassCastException: class

org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms cannot be cast to

class org.elasticsearch.search.aggregations.bucket.terms.StringTerms

(org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms and

org.elasticsearch.search.aggregations.bucket.terms.StringTerms are in unnamed module

of loader 'app')

原因:

报错中是无法转化成 StringTerms 类型

在之前的版本中是可以的,但在 7 版本以上就不好使了

解决:

需要将 StringTerms 类型改为 Terms 类型

// 获取分组数据
Terms terms = Objects.requireNonNull(searchSkuInfo.getAggregations()).get(termsId);

2.4 QueryBuilders.termQuery() 查询无数据的问题

报错:

QueryBuilders.termQuery() 查询没有数据

原因:

原因第一个可能是中文的缘故,这时候可以用英文试一试,需中文查询还需要解决。

原因第二个可能是含义没有弄清楚,QueryBuilders.termQuery() 精准匹配,不进行分词,也不是模糊匹

配, 是完全匹配才可以好使,而且只支持单个添加,多个条件需要用 QueryBuilders.termsQuery()

原因第三个可能是 Java Rest Client 客户端自带的 bug。

解决:

方法一:可以将 QueryBuilders.termQuery(name, value) 中的 name 加上 .keyword

方法二:可以将 QueryBuilders.termQuery() 直接用 QueryBuilders.matchPhraseQuery() 代替,

QueryBuilders.matchPhraseQuery() 也是进行精准匹配,match 查询是高级查询, 底层使用了 term 查

询。

3、安装中出现的问题

3.1 Elasticsearch7.1.0启动出现初始化密钥库问题

Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-6.6.0/config/elasticsearch.keystore
Likely root cause: java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-7.1.0/config/elasticsearch.keystoreat sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)at java.nio.file.Files.newByteChannel(Files.java:361)at java.nio.file.Files.newByteChannel(Files.java:407)at org.apache.lucene.store.SimpleFSDirectory.openInput(SimpleFSDirectory.java:77)at org.elasticsearch.common.settings.KeyStoreWrapper.load(KeyStoreWrapper.java:206)at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:224)at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:289)at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)at org.elasticsearch.cli.Command.main(Command.java:90)at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
Refer to the log for complete error details.

这个版本需要进行安全认证功能需要创建elasticsearch.keystore这个文件,所以输入下面的命令:

./bin/elasticsearch-keystore create

相关文章:

Elasticsearch使用中出现的错误

Elasticsearch使用中出现的错误 1、分页查询异常 在分页的过程中出现了一个问题是当查询的数据超过10000条的时候报了异常: from size must be less than or equal to: [10000]这个问题最快捷的解决方式是增大窗口大小: curl -XPUT http://127.0.0.…...

【IMX6ULL驱动开发学习】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)

目录 一、驱动程序编写流程 二、代码编写 2.1 驱动程序hello_drv.c 2.2 测试程序 2.3 编写驱动程序的Makefile 三、上机实验 3.1 NFS 挂载 3.2 测试示例 一、驱动程序编写流程 构造file_operations结构体 在里面填充open/read/write/ioctl成员 注册file_operations结…...

决策规划仿真平台搭建

决策规划仿真平台搭建 自动驾驶决策规划算法第二章第一节 决策规划仿真平台搭建 这部分的主要难点在于多个软件的连通与适配,环境的搭建总是折磨人的,主要是 4 个软件,各软件版本如下 Visual Studio2017PreScan8.5.0CarSim2019.0MATLAB2019b…...

计算图像哈希SHA-512

1、MATLAB实现 计算图像哈希值SHA-512,在文献[1]提到的算法如下: % Example Code: Create an MD5 crypto-hash of an arbitrary string, "str" % Main class of interest: System.Security.Cryptography.HashAlgorithm% Example String to hash with MD5 %…...

Android之消除APP图标的白色边框

有问题的效果: 解决方案: 第一步:app右键—>new—>Image Asset 第二步:上传Logo图标,选择每种分辨率,预览看效果,选择Resize,可以微调 第三步:点击 Next&#xff…...

java线程的优先级、守护线程的概念

1.线程的调度 抢占式调度 非抢占式调度 1.1 抢占式调度 优先级越高,抢到cpu的概率越高 1.2 守护线程 守护线程,非守护线程。当其他的非守护线程执行完毕以后,守护线程会陆续结束。 守护线程的应用场景...

asp.net core 6.0 efcore +sqlserver增删改查的demo

asp.net core 6.0 efcore sqlserver增删改查的demo 下面是一个使用ASP.NET Core 5.0和Entity Framework Core进行增删改查操作的示例。 首先,创建一个空的ASP.NET Core 6.0 Web应用程序项目。 然后,安装以下NuGet包: Microsoft.EntityFra…...

HC32L110B6芯片测试

到货之后,直观上感觉的确很小,小包装盒里面还装了说明书。 下载器单独在一个盒里面,但是这个T-U2T没用上,还是用的STLINK。 开发之前先去网上找了一些别人遇到的坑,的确不少。 涉及的方面也是挺全的,供电、…...

关于我乱删注册表导致电脑没有声音这件事

之前因为想彻底删除迅雷,照着网上进入注册表一顿乱删,也忘记删了啥,反正把一顿xmp的文件,和搜索出来迅雷的全删了。结果迅雷确实没了,被带走的还有电脑的声音。 很离谱,就试过了所有方法都没用&#xff0c…...

Linux 命令 su 和 sudo 的区别

之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇文章来系统总结一下。 1. 准备工作 因为本篇博客中涉及到用户切换,所以我需要提前准备好几个测试用户,方…...

微信小程序:Mobx的使用指南

简要 微信小程序中有时需要进行全局状态管理,这个时候就需要用到Mobx.下面我们来看一下在小程序中是如何使用Mobx的 安装 pnpm i mobx-miniprogram4.13.2 mobx-miniprogram-bindings1.2.1 或 npm i mobx-miniprogram4.13.2 mobx-miniprogram-bindings1.2.1 或 yarn…...

【Spring Boot】Spring Boot项目的创建和文件配置

目录 一、为什么要学Spring Boot 1、Spring Boot的优点 二、创建Spring Boot项目 1、创建项目之前的准备工作 2、创建Spring Boot项目 3、项目目录的介绍 4、安装Spring Boot快速添加依赖的插件 5、在项目中写一个helloworld 三、Spring Boot的配置文件 1、配置文件的…...

Spring Cloud 智慧工地源码(PC端+移动端)项目平台、监管平台、大数据平台

智慧工地源码 智慧工地云平台源码 智慧建筑源码 “智慧工地”是利用物联网、人工智能、云计算、大数据、移动互联网等新一代信息技术,彻底改变传统建筑施工现场参建各方现场管理的交互方式、工作方式和管理模式,实现对人、机、料、法、环的全方位实时监…...

通达OA SQL注入漏洞【CVE-2023-4165】

通达OA SQL注入漏洞【CVE-2023-4165】 一、产品简介二、漏洞概述三、影响范围四、复现环境POC小龙POC检测工具: 五、修复建议 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损…...

centos7 安装 docker 不能看菜鸟教程的 docker 安装,有坑

特别注意 不能看菜鸟教程的 docker 安装,有坑 如果机器不能直接上网,先配置 yum 代理 proxyhttp://172.16.0.11:8443 配置文件修改后即刻生效,再执行 yum install 等命令,就可以正常安装软件了。 参考 https://blog.csdn.net/c…...

♥ vue中$nextTick()

♥ vue中$nextTick() ① 语法 this.$nextTick(回调函数)② 作用 在下一次 DOM 更新结束后执行其指定的回调 使用时机----(比方Echarts地图的渲染) 当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行 ③ 案例: 实现…...

小程序裂变怎么做?小程序裂变机制有哪些?

做了小程序就等于“生意上门”?其实并不是这样。小程序跟流量平台较为明显的区别就在于小程序并非“自带流量”,而是需要企业利用自己的营销推广能力来建立引流渠道,从而完成用户的拉新和留存、转化。因此,想要用小程序来增加自己…...

Openlayers实战:使几何图形适配窗口

Openlayers开发的项目中,有一种应用非常重要,就是绘制或者显示出几何图形后,让几何图形居中并适配到窗口下,这样能让用户很好的聚焦到所要看的内容中去。 这里使用了fit的这个view 的方法,具体的操作请参考示例源代码。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozh…...

活动发布会邀请媒体6步走

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 邀请媒体参加活动发布会对信息的传播,企业品牌建设有诸多的好处,今天就与大家分享下邀请媒体参加活动报道的6个步骤: 1. 策划与准备: -明…...

W6100-EVB-PICO作为TCP Client 进行数据回环测试(五)

前言 上一章我们用W6100-EVB-PICO开发板通过DNS解析www.baidu.com(百度域名)成功得到其IP地址,那么本章我们将用我们的开发板作为客户端去连接服务器,并做数据回环测试:收到服务器发送的数据,并回传给服务器…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...