【问题标题】:Java elasticsearch spring-data set different index field nameJava elasticsearch spring-data set不同的索引字段名
【发布时间】:2016-04-09 14:26:05
【问题描述】:

我将 elasticsearch java-api 与 spring-data 结合使用,并且在索引文档时遇到问题。 我想要索引字段的不同名称。这意味着与java代码中的不同:

域对象:

@Document(indexName = "testindex", type = "message")
public class MessageObject {

@Id
private String  unid;

@FieldNameInElasticIndex(value = "javaMessage")  // I want anything like that
private String message;

private String secondMessage;

private String thirdMessage;

...

getters & setters

...

}

界面:

public interface MessageObjectRepository extends ElasticsearchRepository<MessageObject, Long> {


}

服务:

@Component
public class MessageService {

    @Autowired
    private MessageObjectRepository repository;


    public void addRegistrationObject(MessageObject msg) {

        repository.save(msg);
    }
}

所以....

是否可以更改名称,使索引看起来像:

"hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
      {
        "_index": "testindex",
        "_type": "message",
        "_id": "00113B325ED357B7C1257E2D001D5B4B",
        "_score": 1,
        "_source": {
          "unid": "00113B325ED357B7C1257E2D001D5B4B",
          "javaMessage": "Hello",  // <--- this is what I want (javaMessage)
          "secondMessage": null,
          "thirdMessage": "Third",

而不是

"hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
      {
        "_index": "testindex",
        "_type": "message",
        "_id": "00113B325ED357B7C1257E2D001D5B4B",
        "_score": 1,
        "_source": {
          "unid": "00113B325ED357B7C1257E2D001D5B4B",
          "message": "Hello",  // <--- this is NOT what I want (java name: message)
          "secondMessage": null,
          "thirdMessage": "Third",

?

【问题讨论】:

  • 你试过@JsonProperty("javaMessage")吗?
  • 成功了,谢谢 :)

标签: java spring elasticsearch spring-data spring-data-elasticsearch


【解决方案1】:

这个想法很简单,就是在字段上使用@JsonProperty注解,并给出你想要在JSON序列化过程中使用的名称:

@JsonProperty("javaMessage")
private String message;

【讨论】:

猜你喜欢
  • 2015-09-22
  • 1970-01-01
  • 2015-05-04
  • 2018-08-01
  • 2022-01-08
  • 1970-01-01
  • 2017-07-07
  • 2020-04-24
  • 2016-09-07
相关资源
最近更新 更多