【发布时间】:2015-12-19 11:52:23
【问题描述】:
我对 Lucene 还很陌生,所以如果我的某些术语有误,请提前原谅我。
Lucene 提供了不同类型的字段(关键字、文本、未存储、未索引),但它似乎也支持 Numeric 字段、Int 字段和 Float 字段。
现在,我想知道“越接近越好”功能是否存在/或是否易于在 Lucene 中实现:
我希望将文档的 creation_date作为 unix 时间存储到浮点字段中。 然后我希望能够将查询中给出的 unix 时间与文档的索引 unix 时间进行比较。
而不是范围查询(检查范围是否在特定范围之间)或布尔查询(检查值是否相同)我希望能够根据unix 时间之间的时间。 如果时间跨度较小,则其最终得分应该高于时间跨度较大的情况。最好这不应该是线性发生的,而是例如以指数方式发生的。所以正如这个问题的标题所说:越近越好。
我注意到 ElasticSearch,它使用 Lucene 作为核心提供 decay function scores,这是我正在寻找的行为吗?这是否存在于 Lucene 中?
最后,我想知道:是否可以将这种“类型”评分与用于查询文档正文的默认 tf-idf 评分进行比较,最终评分是文档之间的时间跨度得分和正文的文本相似度。
【问题讨论】:
标签: java elasticsearch lucene similarity