Zai*_*mir 12 frequency tf-idf elasticsearch
我想知道是否有可能在整个索引或别名的Elasticsearch字段中获得前十个最常用的单词.
这是我正在尝试做的事情:
我正在索引从各种文档类型(Word,Powerpoint,PDF等)中提取的文本文档,这些文档被分析并存储在名为doc_content的字段中.我想知道是否有办法找到存储在doc_content字段中的特定索引中最常用的单词.
为了更清楚,我们假设我正在索引来自亚马逊和eBay的发票.现在让我们假设我有来自亚马逊的100张发票和来自易趣的20张发票.让我们假设每个亚马逊发票中出现两次"亚马逊"一词,每个易趣发票中出现"ebay"一词三次.
现在,有没有办法得到排序的汇总,告诉我"亚马逊"这个词在我的索引中出现200次(100张发票x 2次出现/发票),"ebay"出现60次(20张发票x 3)出现/发票).
我的另一个问题是,如果前者是可能的,那么有没有办法确定某个词之后最常出现的词是什么?
例如:假设我有100个文档.这些文件中的60个包含术语"老猫",40包含术语"老狗",并且为了参数,我们假设这些词仅在每个文档中出现一次.
现在,如果我们可以得到单词"old"的频率,在我们的例子中应该是100.然后我们可以确定与它之后的单词的关系来得到类似的东西:
__________ Cat (60)
|
Old (100)-----|
|__________ Dog (40)
Run Code Online (Sandbox Code Playgroud)
要获得术语频率,您可以使用术语向量。但是,您首先必须存储它们,其次,您只能针对给定文档检索它们。
据我所知,不可能对术语向量进行聚合。
也许您可以使用脚本字段实现一些您想要的目标。但话又说回来,Groovy 目前由于安全问题而不受青睐,而且对脚本字段的聚合可能相当缓慢。
顺便说一句,类似的问题以前也被问过:
| 归档时间: |
|
| 查看次数: |
4309 次 |
| 最近记录: |