弹性搜索词频及其关系 [英] Elasticsearch word frequency and relations
本文介绍了弹性搜索词频及其关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道是否有可能在整个索引或别名中获取Elasticearch字段中最常用的前十个单词。
以下是我正在尝试做的事情:
我正在索引从各种文档类型(Word、Powerpoint、PDF等)中提取的文本文档,这些文档将被分析并存储在名为docContent的字段中。我想知道是否有办法在特定索引中找到存储在文档内容字段中的最常用单词。
为了更清楚起见,我们假设我正在为来自Amazon和eBay的发票编制索引。现在让我们假设我有来自亚马逊的100张发票和来自eBay的20张发票。让我们还假设单词"Amazon"在每个Amazon发票中出现两次,单词"eBay"在每个eBay发票中出现3次。
现在,有没有办法得到一个集合,告诉我单词"Amazon"在我的索引中出现200次(100张发票x 2次/发票),单词"eBay"出现60次(20张发票x 3次/发票)。
我的另一个问题是,如果前者是可能的,那么有没有办法确定某个单词之后最频繁的单词是什么?
例如:假设我有100个文档。在这些文档中,60个文档包含术语"Old Cat",40个文档包含术语"Old Dog",为了便于论证,我们假设这些词在每个文档中只出现一次。
现在,如果我们可以得到单词"old"的频率,在我们的例子中应该是100。然后,我们能确定与紧随其后的单词的关系,从而拥有这样的东西吗: __________ Cat (60)
|
Old (100)-----|
|__________ Dog (40)
推荐答案
要获取词频,可以使用term vectors。但是,您首先必须存储它们,其次,您只能为给定文档检索它们。
据我所知,不可能对术语向量进行聚合。
也许您可以使用脚本化字段实现一些您想要的功能。但话又说回来,Groovy目前由于安全问题而不受欢迎,在脚本化字段上聚合可能会非常慢。
顺便提一下,以前也问过类似的问题:
这篇关于弹性搜索词频及其关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文