gpt4 book ai didi

python - 如何使用elasticsearch生成词云?

转载 作者:行者123 更新时间:2023-12-01 01:08:43 28 4
gpt4 key购买 nike

我有一个包含以下形式数据的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 中正确编写最简单的聚合查询的帮助。

最佳答案

使用terms aggregation对于方法来说,字数很重要。您的查询将是:

{
"query": {
"match_phrase": {
"vignette": {
"query": phrase,
}
}
},
"aggs" : {
"cloud" : {
"terms" : { "field" : "vignette" }
}
}
}

当您收到结果时,从aggregations键中获取存储桶:

res = self.es.search(index=self.index_name, doc_type=self.doc_type, body=body)
for bucket in res['aggregations']['cloud']['buckets']:
rest of build cloud

关于python - 如何使用elasticsearch生成词云?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55080093/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com