我对Lucene的索引结构很新,所以请告诉我这是否有意义,或者我是否想用锤子钻一个洞。
要点/概述
我相信我需要用自己的一些数字覆盖Lucene的术语频率(即代表概率的值[0,100](即[0,1])或另一个数字作为可以采取的证据量度术语频率的位置。是否有可能在索引时覆盖术语频率值,以便该数字实际存储在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范式之外。我想将这些概率(对于'meta'字段)插入到Lucene的评分方案中,以搜索这些元信息标记,并将其他概率带入评分,就像TF-IDF一样。如果我搜索meta:tree AND meta:dog我想找到第二个文档,如果得分使用这些新概率TF,则可以实现这一点。因此,如果我可以用它们的概率修改每个元概念(树,房子和狗)的TF,那么我可以将其包含在Lucene中,而不会改变所有其余部分。
这有意义吗? Lucene是否对索引提供了如此低级别的修改?我正朝着正确的方向前进吗?
答案 0 :(得分:0)
如何对DefaultSimilarity进行子类化并覆盖tf方法?
答案 1 :(得分:0)
该问题被用作LUCENE-7854的支持证据,Lucene 7.0中增加了提供您自己的词频的功能。
要使用它,请在分析仪中使用DelimitedTermFrequencyTokenFilter。