应用程序生成一个弹性索引。描述了对象到索引的Map,然后需要在索引中动态地创建字段(即,不在描述的Map中的字段)。Map示例:
@Document (indexName = "product", createIndex = true)
public class Product {
@Id
@Field (name = "id", type = FieldType.Long)
private Long id;
@Field (name = "name", type = FieldType.Text)
private String name;
}
在将文档写入索引时,有必要向其添加字段 count_mag1 = 5, count_mag2 = 6 ... count_magN = 5
也就是说,Map中没有描述的字段及其编号是动态的。
据我所知,在这种情况下,我只需要留下所描述的实体并通过spring数据存储库保存实体?当然,在理想情况下,我希望向实体添加一个属性,其集合值的形式如下:
@Document (indexName = "product", createIndex = true)
public class Product {
@Id
@Field (name = "id", type = FieldType.Long)
private Long id;
@Field (name = "name", type = FieldType.Text)
private String name;
private Map <String, Long> counts;
}
在elastic中形成请求的阶段,迭代这个Map并创建具有这样一个键值的元素,而忽略它本身。也许有这样一个机会,而我只是愚蠢而没有注意到?
第。s。抱歉,谷歌翻译:(
升级版本:
不,不幸的是它不适合我。在上面的问题中,数据嵌套在innerdata字段中,现在我通过在实体中指定以下选项来实现相同的结果: private Map<String, Long> counts;
我的目标是最终得到这样的结果:
"_index": "infos",
"_type": "_doc",
"_id": "123456",
"_version": 1,
"_seq_no": 6919,
"_primary_term": 1,
"_routing": "4",
"found": true,
"_source": {
{
"id": 123,
"name": "test",
"count_wh_1": 123,
"count_wh_2": 1234,
"count_wh_3": 1235,
.....
"count_wh_N": 123,
}
}
暂无答案!
目前还没有任何答案,快来回答吧!