我有一个问题我不知道如何解决。
想象一下,我有一些来自不同用户的推文,想知道哪些词对特定用户使用最多。为了使它更有趣,我喜欢通过所有推文(来自所有用户)的上下文中的单词的独特性来提高计数。
因此,假设一个用户总共发了四次“stackoverflow”这个词,并且“stackoverflow”只被该用户使用过。同一个用户也多次发布了“I”,“for”和“yes”这几个字(比如10),但这些字也被很多次其他用户的推文发送过。
我想找一个查询,将“stackoverflow”的计数/分数提高到高于计数/分数,比如说,“for”。
在这种情况下,elasticsearch类型将包含一个带有完整推文的字符串(“tweet”),一个未分析的数组,其中包含推文中使用的单词(“tweetedWords”)和用户名(“用户”)。
有什么想法吗?
答案 0 :(得分:2)
找到合适的google-keyword("弹性搜索聚合频率")后,我找到了我要找的东西:significant_terms。
{
"query" : {
"terms": {"user": ["{user}"]}
},
"size": 0,
"aggs": {
"tweetedWords": {
"significant_terms": {
"field": "tweetedWords"
}
}
}
}