如何在Java中使用rest API在弹性搜索中索引对象数组

普拉莫德HG

我使用 ES 7.5.1 来存储数据,使用 Rest API (Spring-boot)。它对单个对象工作正常,但是当我尝试传递对象数组时,它抛出错误请求或不可接受的错误(406)。

代码:

List<UserBean> objectList;
String response = restTemplate.postForObject("http://localhost:9200/employeedata/users", objectList, String.class);
普拉莫德HG

我们可以使用RestHighLevelClient 将批量数据索引到弹性中

Maven 依赖项:

<dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>${elastic.version}</version>
    </dependency>

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>${elastic.version}</version>
    </dependency>

配置 :

@Bean
protected RestHighLevelClient createInstance() throws Exception
{
    try
    {
        RestHighLevelClient restHighLevelClient = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", "9200", "http")));
    }
    catch (Exception e)
    {
        LOG.error("Error while creating RestHighLevelClient", e);
    }
    return restHighLevelClient;
}

用法 :

@Autowired
private RestHighLevelClient restHighLevelClient;

@Override
public void storeBulkDataInElastic(List<UserBean> dataBeanList) throws IOException
{
    BulkRequest bulkRequest = new BulkRequest();
    ObjectMapper objectMapper = new ObjectMapper();
    dataBeanList.forEach(data -> {
        IndexRequest indexRequest = new IndexRequest("ElasticIndex", "ElasticType", "ElasticId").source(objectMapper.convertValue(data, Map.class));
        bulkRequest.add(indexRequest);
    });

    restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在弹性搜索中获取嵌套对象的数组计数

在弹性搜索中使用Java API创建索引模板

如何在Java中使用Outlook Rest Calendar API

如何从弹性搜索中获取索引的字段?

在弹性搜索中,如何通过对象数组中的多个对象进行匹配?

如何在内部java api或jest api中获取弹性搜索索引的类型名称

如何从索引中所有可用文档的弹性搜索数组中删除空字符串?

如何在REST API中使用会话

如何在REST API中使用提取?

如何在JSP中使用REST Api?

如何在FireMonkey中使用REST API?

如何在弹性搜索索引中插入数据

如何在弹性搜索中为数组数组编写映射?

通过 Highlevel Rest api 创建弹性搜索索引失败?

弹性搜索-如何检查kibana中是否使用了索引

Java API中的弹性搜索查询

如何在弹性搜索中查询嵌套的json对象/字段?

如何在弹性搜索中获取嵌套对象?

如何在JAVA / Android中使用Woocommerce REST API的'POST'Http Verb?

java中弹性搜索聚合,用于弹性搜索中的所有索引

如何在Java中使用HttpGet在REST调用中传递空格

如何在java中使用线性搜索?

如何从Kafka连接在弹性搜索中创建多个索引

是否可以在使用嵌套的弹性搜索中定义通用索引?

如何在 Java 中使用对象方法?

如何在Java中使用json数组?

如何在Java中使用分割数组

如何在弹性搜索中每天使用Serilog自动生成索引

如何在.NET中使用REST API创建Azure蓝图