【问题标题】:Lucene trouble with indexing recurring eventsLucene 索引重复事件的问题
【发布时间】:2009-11-09 03:45:58
【问题描述】:

我正在尝试想出一种在 Lucene 中查询日期的方法。基本上我有一个有开始日期、结束日期并且也可以定期发生的事件。我尝试的方法是在 Lucene 中创建一个索引字段,该字段将列出所有可能的日期,用逗号分隔(或者空格就足够了,真的),然后对其应用范围搜索。日期索引如下:

从 31-10-09 开始的事件 A:“20091031”

事件 B 于 2009 年 10 月 31 日开始并持续 2 天:“20091031, 20091101, 20091102”

事件 C 在接下来的 3 个星期六的每个星期六重复出现:“20091031、20091107、20091114”

但这不起作用,因为如果我要查找 20091030 和 20091101 之间的事件,它应该列出事件 A、B 和 C,但因为 B 和 C 有一些超出所需范围的事件,它没有找到它们。

知道如何解决吗?谢谢

【问题讨论】:

  • 您没有显示创建文档的代码(或至少该文档中的字段),也没有显示您用于查询的代码,因此您不太可能得到任何好的答案.
  • 我认为代码与我的问题无关,因为它更像是“你会怎么做?”而不是“我的代码哪里有错误?”那种东西。

标签: lucene


【解决方案1】:

一种可能的方法是为每个事件的每次发生创建一个单独的文档。 事件 B 和 C 将分别具有三个文档,每个文档都有一个日期字段和一个事件名称字段。然后一个简单的范围搜索可以找到事件。

另一个问题是是否要在 Lucene 中执行此操作。有关相关问题的讨论,请参阅Search Engine versus DBMS

【讨论】:

  • 这实际上是个好主意。谢谢!至于 Lucene/DBMS 的决定,在项目的这个阶段做出这种决定已经太迟了。然而,我的搜索算法比范围搜索更复杂,即使我确信我可以在 RDBMS 中实现不同属性的加权等,但这似乎太麻烦了。
猜你喜欢
  • 2016-03-05
  • 2021-05-27
  • 2012-04-28
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多