我有一个Elasticsearch数据库,其中的数据格式为
record = {#all but age are strings
'diagnosis': self.diagnosis,
'vignette': self.vignette,
'symptoms': self.symptoms_list,
'care': self.care_level_string,
'age': self.age, #float
'gender': self.gender
}
我想在vignette
中创建数据词云。
我尝试了各种查询,但出现400错误,这意味着我不了解如何查询数据库。
我正在使用python
这是我能够提出的唯一成功的查询
def search_phrase_in_vignettes(self, phrase):
body = {
"_source": ["vignette"],
"query": {
"match_phrase": {
"vignette": {
"query": phrase,
}
}
}
}
res = self.es.search(index=self.index_name, doc_type=self.doc_type, body=body)
在“'vignette'”字段中找到带有phrase
的任何记录
我认为某些聚合应该可以解决问题,但是我似乎无法使用'aggr'编写正确的查询。
在如何正确地使用Python聚合正确编写最简单的查询方面,我们将提供帮助。
答案 0 :(得分:0)
使用terms aggregation作为进场字数。您的查询将是:
resource_string
收到结果后,请按{
"query": {
"match_phrase": {
"vignette": {
"query": phrase,
}
}
},
"aggs" : {
"cloud" : {
"terms" : { "field" : "vignette" }
}
}
}
键进行操作:
aggregations