elasticsearch - Java REST 弹性搜索:使用 com.fasterxml.jackson.databind.ObjectMapper 的嵌套字段映射
问题描述
field
例如,我有一个Object_IDs
可以有多个Object_ID
. 以下是片段:
"Object_IDs":{
"type":"nested",
"properties":{
"Object_ID": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
我正在使用Elastic search
6.2.3
并且正在com.fasterxml.jackson.databind.ObjectMapper
用于映射对象。
我无法创建nested field
using com.fasterxml.jackson.databind.ObjectMapper
. 这是代码片段:
ObjectNode nestedNode = objectMapper.createObjectNode();
nestedNode.put("type", "nested");
nestedNode.put("index", true);
mapperNode.set("Object_IDs", nestedNode);
ObjectNode setkeyWord = objectMapper.createObjectNode();
setkeyWord.put("type", "keyword");
setkeyWord.put("index", true);
ObjectNode innerProperties = objectMapper.createObjectNode();
innerProperties.set("Object_ID", setkeyWord);
nestedNode.set("properties", innerProperties);
但这结果:
"mappings": {
"archive": {
"properties": {
"Object_IDs": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"Object_ID": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
请帮助我使用创建 mapping
嵌套字段com.fasterxml.jackson.databind.ObjectMapper
解决方案
我不知道 com.fasterxml.jackson.databind.ObjectMapper。但是您可以通过将 Object_IDs 字段映射到嵌套类型来创建索引,如下所示。
"Object_IDs":{
"type":"nested",
"properties":{
"Object_ID": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
推荐阅读
- linux - Ansible 将字符串转换为布尔值
- javascript - 如何检查文件中的一行是否存在于 Javascript 中的文件中?
- python - 计算二分网络x图中的正方形数量
- python - 如何停止在 python 中显示传递依赖的漏洞?
- python - 从其他数据框标记数据框
- terminal - 使用 terminfo 仅重置前景色
- amazon-web-services - 在使用 CDK 的数组中使用 JsonPath Step Functions 变量
- javascript - 如何检查流(JS)中允许的类型的子集?
- php - PHP中按时间排序的独特3d数组
- javascript - 如何在 mongo shell 脚本中导入 Javascript 对象