【发布时间】:2015-09-12 21:44:40
【问题描述】:
我想根据存在的字段运行任何查询/过滤器。在我们的例子中,如果用户回答了一个特定的字段,那么只有我们会存储该值,否则不会自行存储该字段。如何运行查询?
下面是我的映射:
"mappings": {
"responses_10_57": {
"properties": {
"rid: {
"type": "long"
},
"end_time": {
"type": "date",
"format": "dateOptionalTime"
},
"start_time": {
"type": "date",
"format": "dateOptionalTime"
},
"qid_1": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"analyzer": "str_params"
}
}
},
"qid_2": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"analyzer": "str_params"
}
}
},
"qid_3": {
"properties": {
"msg_text": {
"type": "string"
},
"msg_tags": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"analyzer": "str_params"
}
}
}
}
}
}
}
}
qid_1 为姓名字段,qid_2 为类别字段,qid_3 为短信字段。
但qid_3 不是必填字段。因此,如果用户没有输入任何短信,我们将不会插入记录。
1) 我希望每个类别都统计回答第三个问题的人。
2) 我要搜索回答第三个问题的名字。
如何编写这两个查询?
【问题讨论】:
-
我的回答有用吗?它奏效了吗?如果是这样,你能接受我的回答吗?
-
是的,是的。谢谢亚历克斯
标签: elasticsearch