Elasticsearch Java使用错误

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介:

ElasticSearch java 使用报错

Exception in thread "main" java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW
    at org.elasticsearch.common.xcontent.json.JsonXContent.<clinit>(JsonXContent.java:77)
    at org.elasticsearch.common.xcontent.XContentType$1.xContent(XContentType.java:60)
    at org.elasticsearch.common.settings.Setting.arrayToParsableString(Setting.java:868)
    at org.elasticsearch.common.settings.Setting.lambda$listSetting$29(Setting.java:814)
    at org.elasticsearch.common.settings.Setting$$Lambda$29/1945604815.apply(Unknown Source)
    at org.elasticsearch.common.settings.Setting$2.getRaw(Setting.java:818)
    at org.elasticsearch.common.settings.Setting.lambda$listSetting$27(Setting.java:802)
    at org.elasticsearch.common.settings.Setting$$Lambda$30/940060004.apply(Unknown Source)
    at org.elasticsearch.common.settings.Setting.listSetting(Setting.java:807)
    at org.elasticsearch.common.settings.Setting.listSetting(Setting.java:802)
    at org.elasticsearch.common.network.NetworkService.<clinit>(NetworkService.java:50)
    at org.elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:98)
    at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:126)
    at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:265)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:130)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:116)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:106)
    at com.lhcis.bond.business.constant.ESTest.getTransPortClient(ESTest.java:41)
    at com.lhcis.bond.business.constant.ESTest.testSearch(ESTest.java:61)
    at com.lhcis.bond.business.constant.ESTest.main(ESTest.java:85)

我的项目是maven引入依赖

<dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>5.5.1</version>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>5.5.1</version>
        </dependency>

此问题已解决,就是

<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

jackson版本不对,因为elasticsearch里也引入jackson,两个版本不对就会报这个错误,改过来一样的版本,或者去除elasticsearch版本依赖,可以直接用你的pom里的版本就可以了。


本文转自 豆芽菜橙 51CTO博客,原文链接:http://blog.51cto.com/shangdc/2051244


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
27天前
|
运维 监控 Java
探索Elasticsearch在Java环境下的全文检索应用实践
【6月更文挑战第30天】在大数据背景下,Elasticsearch作为分布式搜索分析引擎,因其扩展性和易用性备受青睐。本文指导在Java环境中集成Elasticsearch,涉及安装配置、使用RestHighLevelClient连接、索引与文档操作,如创建索引、插入文档及全文检索查询。此外,还讨论了高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据全文检索。
54 0
|
26天前
|
存储 监控 搜索推荐
大规模数据存储与检索:Java与Elasticsearch应用
大规模数据存储与检索:Java与Elasticsearch应用
|
25天前
|
存储 监控 搜索推荐
大规模数据存储与检索:Java与Elasticsearch应用
大规模数据存储与检索:Java与Elasticsearch应用
|
19天前
|
Java
Java 实现 Elasticsearch 查询全部数据
【7月更文挑战第7天】Java 实现 Elasticsearch 查询全部数据
|
22天前
|
存储 搜索推荐 Java
如何在Java中使用Elasticsearch
如何在Java中使用Elasticsearch
|
1月前
|
搜索推荐 Java 数据库
Java中的ElasticSearch集成与实践
Java中的ElasticSearch集成与实践
|
1月前
|
Java
ElasticSearch启动报错 java version is an early-access build ,only use release builds【已解决】
ElasticSearch启动报错 java version is an early-access build ,only use release builds【已解决】
24 0
|
Java 程序员 编译器
|
2天前
|
Java 程序员 调度
Java中的多线程编程:概念、实现及性能优化
【5月更文挑战第85天】本文主要探讨了Java中的多线程编程,包括其基本概念、实现方式以及如何进行性能优化。首先,我们将介绍多线程的基本概念,然后详细讨论如何在Java中实现多线程,包括继承Thread类和实现Runnable接口两种方式。最后,我们将探讨一些提高多线程程序性能的策略,如使用线程池和减少同步开销等。
|
2天前
|
监控 Java 开发者
深入理解Java并发编程:线程池的原理与实践
【5月更文挑战第85天】 在现代Java应用开发中,高效地处理并发任务是提升性能和响应能力的关键。线程池作为一种管理线程的机制,其合理使用能够显著减少资源消耗并优化系统吞吐量。本文将详细探讨线程池的核心原理,包括其内部工作机制、优势以及如何在Java中正确实现和使用线程池。通过理论分析和实例演示,我们将揭示线程池对提升Java应用性能的重要性,并给出实践中的最佳策略。