繁体   English   中英

在Lucene中,越接近越好的方法

[英]The closer the better approach in Lucene

我对Lucene来说还很陌生,所以如果我的某些术语错误,请提前原谅我。

Lucene提供了不同类型的字段(关键字,文本,未存储,未索引),但似乎还支持数字字段, Int字段和Float字段。

现在,我想知道在Lucene中是否存在“ 越近越好 ”的功能或易于实现的功能:

我希望将文档的creation_date 作为unix时间存储到float字段中 然后,我希望能够将查询中给出的Unix时间与文档索引的Unix时间进行比较。

我希望能够基于unix时间之间的时间返回相似感,而不是范围查询(检查范围是否在特定范围之间)或布尔查询(检查值是否相同) 如果时间跨度较小,则其最终得分将比时间跨度较大时更高。 优选地,这不应该线性发生,而是以指数形式发生。 因此,正如该问题的标题所述: 越近越好

我注意到以Lucene为核心的ElasticSearch提供了衰减函数得分 ,这是我正在寻找的行为,并且在Lucene中存在吗?

最后,我想知道:是否可以将这种“类型”的评分与用于查询文档正文的默认tf-idf评分进行比较,从而最终得分是该得分的组合文件与正文文本相似性之间的时间跨度。

我不认为您可以像弹性搜索那样直接使用它。 您总是可以尝试自己将其添加为模块。 这些算法可在Internet上大量使用。

您还可以结合使用Lucene中的增强和负增强系统以及现有的排名系统来进行实验,以获取所需的结果。 我是在Apache SOLR上这样做的,它的工作就像一个魅力:)

最后一点,tf-idf模块可在solr中使用,如果尚未在lucene中使用,则只需从solr复制它,并将其作为模块添加到lucene中,然后将您自己的模块与tf-idf模块组合在一起即可获得组合结果。

暂无
暂无

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

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