小编I. *_*kov的帖子

OpenSearch Java 客户端:现有文档的批量更新导致 400 错误请求

我正在使用OpenSearch Java 客户端对 AWS 提供的 OpenSearch 中存储的现有文档实施批量更新操作。

请求BulkRequest对象如下所示:

BulkRequest request = new BulkRequest.Builder().operations(o -> o.update(u -> u.index(indexName).id(String.valueOf(id)).document(doc))).build();
        
openSearchClient.bulk(request);
Run Code Online (Sandbox Code Playgroud)

doc对象是一个 POJO 对象,反映索引内的文档。

public class ProgramSelectionInfoBase implements Serializable {

    private static final long serialVersionUID = 6880667215923483985L;

    private long id;
    private String status35;
    // other fields, getters, setters.

}
Run Code Online (Sandbox Code Playgroud)

我收到的响应是400 Bad Request

在调试模式下,解析的批量请求看起来与批量更新文档中应有的不同。它缺少"doc"父对象,该对象应该包装部分更新的文档:

{ "update" : { "_id" : "361710", "_index" : "program_search" }}
{ "status35": "draft" }. <- doc is missing. …
Run Code Online (Sandbox Code Playgroud)

java opensearch elasticsearch amazon-opensearch

5
推荐指数
1
解决办法
1639
查看次数

Spring,应用程序启动时运行一次任务

我的应用程序基于弹簧启动.我想创建一个应用程序启动后应该只运行一次的任务.

目前,我正在研究两种解决方案:

  1. 使用@Scheduled和boolean属性,它应该确定逻辑shold是否运行.

    @Scheduled public void method(){ if(method_run_propery){ //do something; } }

  2. 使用Quartz.但我以前没用过.

请告诉我在这种情况下使用的最佳方法是什么.

spring scheduled-tasks quartz-scheduler quartz-core

3
推荐指数
2
解决办法
8534
查看次数

Spring Data JPA:在查询方法上使用@Query注释获取第一条记录

我的查询方法返回实体列表:

@Query("select u from ProfileDMO p inner join p.userPrincipal u where p.id=:profileId")
    List<UserPrincipalDMO> findUserPrincipalByProfileId(@Param("profileId") long profileId);
Run Code Online (Sandbox Code Playgroud)

我只需要第一个结果。目前,我正在用来List.get(int index)获取第一个元素。

有谁知道我应该如何更新我的查询方法以仅返回第一个结果?

jpa spring-data-jpa

3
推荐指数
1
解决办法
7370
查看次数

PyYAML、safe_dump 向 YAML 文件添加换行符和缩进

我想收到以下 YAML 文件:

---
classes:
  - apache
  - ntp

apache::first: 1
apache::package_ensure: present
apache::port: 999
apache::second: 2
apache::service_ensure: running

ntp::bla: bla
ntp::package_ensure: present
ntp::servers: '-'
Run Code Online (Sandbox Code Playgroud)

解析后,我收到这样的输出:

---
apache::first: 1
apache::package_ensure: present
apache::port: 999
apache::second: 2
apache::service_ensure: running
classes:
- apache
- ntp
ntp::bla: bla
ntp::package_ensure: present
ntp::servers: '-'
Run Code Online (Sandbox Code Playgroud)

在这里,我找到了赋予文档样式可能性的属性。我试图设置 line_break 和 indent,但它不起作用。

 with open(config['REPOSITORY_PATH'] + '/' + file_name, 'w+') as file:
            yaml.safe_dump(data_map, file, indent=10, explicit_start=True, explicit_end=True, default_flow_style=False,
                           line_break=1)
        file.close()
Run Code Online (Sandbox Code Playgroud)

请给我建议设置输出样式的简单方法。

pyyaml python-2.7

1
推荐指数
1
解决办法
4152
查看次数

java,从几个图像组成图像

我没有在java中处理图像的经验.我的目标是结合几个图像.更详细一点,我有一个模板图像和一些其他图像.我想将这些图像放在特定位置的模板图像中.例如:

模板图片:

在此输入图像描述

具体形象:

在此输入图像描述

因此,我想将狗图像放在猫的图像位置并存储创建的图像.

请告诉我最简单的方法是什么?

java swing javafx imagej

1
推荐指数
1
解决办法
243
查看次数

在整数减法运算结果中添加"+"符号

我在我的代码中执行减法运算,并将接收的结果转换为字符串.结果可能大于0或负数.如果结果为否定,则" - "会自动添加到结果字符串中.

我需要添加'+'符号,如果我收到了正确的结果.请告诉我最简单的方法.

我的代码:

return String.valueOf(settlingScoreMap.get(market.getSettlingScore()).getAway()
          - settlingScoreMap.get(market.getSettlingScore()).getHome()); 
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
84
查看次数