使用elasticsearch的一些问题记录

在操作Elasticsearch(ES)时遇到了问题,通过添加Jackson的jar包解决了问题。进行了相应的测试,测试代码执行后,显示了之前存储在ES中index_test索引的test类型ID为1的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用ES的时候遇到的问题:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
    at org.elasticsearch.common.xcontent.json.JsonXContent.<clinit>(JsonXContent.java:56)
    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$2.getRaw(Setting.java:818)
    at org.elasticsearch.common.settings.Setting.lambda$listSetting$27(Setting.java:802)
    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.es.demo.ESCliect.main(ESCliect.java:19)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 16 more

解决的方案:
需要手动再加一个jackson的jar进来

<dependencies>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <version>5.5.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.5</version>
    </dependency>
</dependencies>

测试的代码:

package com.es.demo;

import java.net.InetAddress;

import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

public class ESCliect {

    public static void main(String[] args) throws Exception {
        try {

            //设置集群名称
            Settings settings = Settings.builder().put("cluster.name", "ES001").build();
            //创建client
            TransportClient client = new PreBuiltTransportClient(settings)
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
            //搜索数据
            GetResponse response = client.prepareGet("index_test", "test", "1").execute().actionGet();
            //输出结果
            System.out.println(response.getSourceAsString());
            //关闭client
            client.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

结果是:

{            
   "title":"test",
   "content":"test content"
}

注意:上面的(“index_test”, “test”, “1”),这个是之前存储在es中的index信息

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值