我使用Elastic Search尝试根据ID属性获取字段值。
这是映射的粗略图片
schoolId
schoolname
问题1
id =1
text = happy
comment : "value"
问题2
id =2
text = sad
comment : "value"
问题3
id =1
text = happy
comment : "value"
我正在使用此值的另一个文档
schoolId
schoolname
问题1
id =2
text = sad
comment : "value"
问题2
id =1
text = happy
comment : "value"
问题3
id =1
text = happy
comment : "value"
以及映射代码
{
"schools": {
"mappings": {
"admission": {
"properties": {
"createTime": {
"type": "date",
"format": "dateOptionalTime"
},
"q1": {
"properties": {
"as": {
"properties": {
"comment": {
"type": "string"
},
"id": {
"type": "long"
},
"text": {
"type": "string"
}
}
},
"text": {
"type": "string"
}
}
},
"q2": {
"properties": {
"as": {
"properties": {
"comment": {
"type": "string"
},
"id": {
"type": "long"
},
"text": {
"type": "string"
}
}
},
"text": {
"type": "string"
}
}
},
"q3": {
"properties": {
"as": {
"properties": {
"comment": {
"type": "string"
},
"id": {
"type": "long"
},
"text": {
"type": "string"
}
}
},
"text": {
"type": "string"
}
}
},
"schoolId": {
"type": "string"
},
"type": {
"type": "string"
},
"updateTime": {
"type": "date",
"format": "dateOptionalTime"
},
"v": {
"type": "string"
}
}
}
}
}
}
现在我只需要那些id为1的问题的注释值,即那些回答得很开心且id = 1的问题。
不是那些被回答悲伤的问题。
我在这里使用过滤器,就像这样
{
"fields": [
"question1.comment",
"question2.comment",
"question3.comment"
],
"filter": {
"or": {
"filters": [
{
"term": {
"question1.id": "1"
}
},
{
"term": {
"question1.id": "1"
}
},
{
"term": {
"question3.id": "1"
}
}
]
}
}
但它给了我所有的评论价值,包括快乐和悲伤的问题。
但我需要为快乐的问题提出意见,而不是那些悲伤的问题。
请帮忙!! 提前谢谢。