繁体   English   中英

Lucene:在索引时间覆盖词频

[英]Lucene: Overwrite Term Frequency at Index Time

我对 Lucene 的索引结构很陌生,所以请告诉我这是否有意义,或者我是否正在尝试使用锤子钻孔。

要点/概述

我相信我需要用我自己的一些数字(即表示概率(即 [0,1])的值 [0,100] 或另一个作为衡量证据的数字,可以代替词频。是否可以在索引时覆盖词频值,以便该数字实际存储在 Lucene 索引中(而不是 Lucene 使用的正常词频)?

详细:

我的文件可能不包含文本或文本很少。 相反,大多数(或被视为)带有元信息的数字工件。 该元信息是从分类器和其他机器学习方法(例如,基于对象识别、颜色直方图或证据组合)获得的学习概念概率。 这是一个非常简单的示例,其中图像被分类(很有可能)包含一棵树并描绘了一座房子。

filepath: /pics/1.jpg
meta: tree = 0.9
meta: house = 0.8
meta: dog = 0.0
... (up to 10000 meta fields)

另一个显示了一只狗,一所房子,但没有树。

filepath: /pics/2.jpg
meta: tree = 0.0
meta: house = 0.3
meta: dog = 1.0
... (up to 10000 meta fields)

每个元标记都存储在一个名为“meta”的单独文档字段中,以便通过将搜索定向到它来使所有元标记都可搜索。 每个字段都包含作为单词或短语的概念,并被视为一个标记。

因此,我主要有关于图 1 和图 2 内容的外部证据来源,我知道这主要超出了经典 TF-IDF 范式的范围。 我想将这些概率(对于“元”字段)插入到 Lucene 的评分方案中,以搜索这些元信息标记并将这些概率带入评分中,就像 TF-IDF 一样。 如果我搜索 meta:tree 和 meta:dog,我想找到第二个文档,如果评分使用这些新的概率 TF,则可以实现这一点。 因此,如果我可以修改每个元概念(树、房子和狗)的 TF 及其概率,那么我可以将其包含到 Lucene 中,而无需更改所有其他概念。

这有意义吗? Lucene 是否对索引提供了如此低级别的修改? 我是否朝着正确的方向前进?

如何子类化DefaultSimilarity并覆盖tf方法?

您是否阅读过有关 Lucene doco 中评分信息

这个问题被用作LUCENE-7854 的支持证据,并且在 Lucene 7.0 中添加了提供您自己的术语频率的能力。

要使用它,请在分析器中使用DelimitedTermFrequencyTokenFilter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM