[ElasticSearch]那些年踩过的ElasticSerch坑

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/52801393 1.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/52801393
1. 索引名称错误
1.1 代码
 
 
  1. xiaosi@Qunar:~$ curl -XPUT 'localhost:9200/Quanr/employee/1'  '
  2. > {
  3. >     "first_name" : "John",
  4. >     "last_name" :  "Smith",
  5. >     "age" :        25,
  6. >     "about" :      "I love to go rock climbing",
  7. >     "interests": [ "sports", "music" ]
  8. > }';
  9. {"error":{"root_cause":[{"type":"invalid_index_name_exception","reason":"Invalid index name [Quanr], must be lowercase","index":"Quanr"}],"type":"invalid_index_name_exception","reason":"Invalid index name [Quanr], must be lowercase","index":"Quanr"},"status":400}curl: (3) [globbing] nested brace in column 148
1.2 报错原因

索引名称必须小写

1.3 解决方案
 
 
  1. xiaosi@Qunar:~/opt/elasticsearch-2.3.3$ curl -XPUT 'localhost:9200/qunar-index/employee/1'  -d '
  2. > {
  3. >     "first_name" : "John",
  4. >     "last_name" :  "Smith",
  5. >     "age" :        25,
  6. >     "about" :      "I love to go rock climbing",
  7. >     "interests": [ "sports", "music" ]
  8. > }';
  9. {"_index":"qunar-index","_type":"employee","_id":"1","_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true}xiaosi@Qunar:~/opt/elasticsearch-2.3.3$


2. 使用Groovy脚本更新文档报错 
2.1 代码
 
  
  1. /**
  2. * 使用脚本更新文档
  3. * @param client
  4. * @param index
  5. * @param type
  6. * @param id
  7. */
  8. public static void updateByScripted(Client client, String index, String type, String id){
  9. UpdateRequestBuilder updateRequestBuilder = client.prepareUpdate();
  10. updateRequestBuilder.setIndex(index);
  11. updateRequestBuilder.setType(type);
  12. updateRequestBuilder.setId(id);
  13. // 脚本
  14. Script collegeScript = new Script("ctx._source.college = \"软件学院\"", ScriptService.ScriptType.INLINE, null, null);
  15. updateRequestBuilder.setScript(collegeScript);
  16. // 更新文档
  17. UpdateResponse response = updateRequestBuilder.get();
  18. }
2.2 报错信息
 
  
  1. java.lang.IllegalArgumentException: failed to execute script
  2. at org.elasticsearch.action.update.UpdateHelper.executeScript(UpdateHelper.java:257)
  3. at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:197)
  4. at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:80)
  5. at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:174)
  6. at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:168)
  7. at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:66)
  8. at org.elasticsearch.action.support.single.instance.TransportInstanceSingleOperationAction$ShardTransportHandler.messageReceived(TransportInstanceSingleOperationAction.java:244)
  9. at org.elasticsearch.action.support.single.instance.TransportInstanceSingleOperationAction$ShardTransportHandler.messageReceived(TransportInstanceSingleOperationAction.java:240)
  10. at org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33)
  11. at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:75)
  12. at org.elasticsearch.transport.TransportService$4.doRun(TransportService.java:376)
  13. at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
  14. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  15. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  16. at java.lang.Thread.run(Thread.java:745)
  17. Caused by: ScriptException[scripts of type [inline], operation [update] and lang [groovy] are disabled]
  18. at org.elasticsearch.script.ScriptService.compile(ScriptService.java:244)
  19. at org.elasticsearch.script.ScriptService.executable(ScriptService.java:442)
  20. at org.elasticsearch.action.update.UpdateHelper.executeScript(UpdateHelper.java:250)
  21. ... 14 more
2.3 报错原因

脚本默认被禁用了。https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

2.4 解决方案 

在安装目录下config文件夹找到elasticsearch.yml文件,然后添加如下配置:

 
   
  1. script.engine.groovy.inline.update: on
然后重新启动ElasticSearch





相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
Java iOS开发 MacOS
Elasticsearch实战(三)-MacOS下载安装启动Elasticserch、Kibana
Elasticsearch实战(三)-MacOS下载安装启动Elasticserch、Kibana
512 0
Elasticsearch实战(三)-MacOS下载安装启动Elasticserch、Kibana
|
4月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
1987 0
|
5月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
855 1
|
10月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
397 5
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
11月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
1065 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
Docker 容器
docker desktop安装es并连接elasticsearch-head:5
以上就是在Docker Desktop上安装Elasticsearch并连接Elasticsearch-head:5的步骤。
539 2
|
Linux Python
【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor
【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor
119 3
|
JSON 自然语言处理 数据库
Elasticsearch从入门到项目部署 安装 分词器 索引库操作
这篇文章详细介绍了Elasticsearch的基本概念、倒排索引原理、安装部署、IK分词器的使用,以及如何在Elasticsearch中进行索引库的CRUD操作,旨在帮助读者从入门到项目部署全面掌握Elasticsearch的使用。