当前位置: 首页 > 知识库问答 >
问题:

单指标多项频率向量

阳俊德
2023-03-14

我有一个应用程序与许多不同的文档类型。每种类型都有自己的语料库,我不希望它们会相互影响。

例如,如果一种类型包含许多项X的出现,那么我不希望这会降低其他类型中X的IDF得分。

我还没有选择任何搜索引擎实现,所以我将欣赏Elasticsearch和/或Solr的答案。

共有1个答案

谷梁涵忍
2023-03-14

在Elasticsearch中,您需要将每个类型放在单独的索引中,以避免来自一个类型的项向量影响来自另一个类型的项向量。

默认情况下,Elasticsearch为每个新索引分配5个主碎片(其中每个碎片都是Lucene实例)。对于较小的类型,可以只使用一个主碎片创建索引:

curl -XPUT 'http://127.0.0.1:9200/user/?pretty=1'  -d '
{
   "settings" : {
      "number_of_shards" : 1
   }
}
'

关于你关于表现的问题。搜索并行地对每个涉及的碎片进行,因此性能实际上取决于硬件的数量和碎片的大小(当然还有查询的复杂程度)。

但是,您可以尝试的一种方法是在不同类型中使用不同的字段名,例如,不使用UserProduct字段nameUser_name,而是使用User_name。然后,术语频率将只与该类型中的那个字段相关。doc频率显然会考虑到所有的doc,但是看到这是一个全局效应,它应该不会有什么不同。

 类似资料:
  • 问题内容: 我一直在尝试使用facet来获取字段的频率。我的查询仅返回一次匹配,因此我想让方面返回在特定字段中出现频率最高的字词。 我的映射: 测试数据: 查询: 这个结果 } 以上结果不是我想要的。我想让频率计数为2 我该如何实现?方面走错了路吗? 问题答案: 构面会计算文档,而不是文档中的术语。您得到1是因为只有一个文档包含该术语,所以发生多少次都没有关系。我不知道使用开箱即用的方式来返回术语

  • 问题内容: 当天最后一个新手熊猫问题:如何为单个系列生成一张桌子? 例如: 大量的搜索使我进入了Series.describe()和pandas.crosstabs,但是这些都不满足我的需要:一个变量,按类别计数。哦,如果它适用于不同的数据类型(字符串,整数等),那就太好了。 问题答案: 也许吧?

  • 问题内容: 我有一个3列和数千行的表,前2列有数据。第三列当前为空,我需要根据第一列和第二列中已有的数据填充第三列。 假设我在第一栏中有状态,在第二栏中有水果条目。我需要编写一条SQL语句来计算 每种水果来自的不同状态数 ,然后将此流行度数字插入到每一行的第三列中。该行中的受欢迎程度数字1表示水果仅来自一个州,受欢迎程度数字4表示该水果来自4个州。所以我的桌子目前是这样的: 我需要弄清楚如何计算然

  • 问题内容: 假设我有一个单词列表,并且我想查找每个单词出现在该列表中的次数。 一个明显的方法是: 但是我发现这段代码不是很好,因为该程序在单词列表中运行两次,一次构建集合,第二次计算出现次数。 当然,我可以编写一个函数来遍历列表并进行计数,但是那不是Pythonic。那么,有没有更有效和Pythonic的方法呢? 问题答案: 在类中模块是专为解决这类问题的目的:

  • 在下面给出的代码中,我声明了一个指向int的指针,我们都知道memcpy返回一个指向目标字符串的空指针,所以如果ptr是指向int的指针,那么为什么printf(“%s”,ptr);是完全有效的,ptr毕竟不是指向char的指针。

  • 问题内容: 我正在编写代码来分析语音所唱的单个音频。我需要一种方法来分析音符的频率。当前,我正在使用PyAudio录制音频文件,该文件存储为,然后立即播放。 问题出在while循环上。由于某种原因,该条件永远不会成立。我打印了两个值(len(data)和(chunk * swidth)),它们分别是8192和4096。然后,我尝试在while循环中使用2 * chunk * swidth,这引发了