【问题标题】:Lucene query documents that don't have a specific field没有特定字段的 Lucene 查询文档
【发布时间】:2012-08-02 17:32:33
【问题描述】:

我在 android 中使用 Lucene 来搜索我的内容。我有两种类型的文档,一种具有trashed 字段,它是truefalse。其他类型的文档没有该字段。我想退回所有包含trashed:false 或没有trashed 字段的文档。

我尝试将-trashed:true 添加到我的查询中,这会返回所有正确的文档,但它会弄乱搜索的偏移量围绕不同的单词而不是我正在搜索的单词。

编辑:

我必须将此添加到我执行的每个搜索查询中。我有大约 20,000 个文档的索引,我真的不想重建它,因为我让我的用户在我的上一个版本中重建了他们的索引。注意:这是在 android 设备上,因此重新索引所有文档需要很长时间和大量电池。

感谢您的帮助。

【问题讨论】:

  • “它弄乱了搜索的偏移量围绕一个不同的词,而不是我正在搜索的词”?

标签: lucene


【解决方案1】:

我可以想到以下解决方案。

1) 如果可以重建索引。

将“已回收”字段值添加到“已回收”不适用的文档中。

要获取所有带有垃圾的文档:false 或“垃圾”不适用,您可以使用以下..

查询:已丢弃:假或已丢弃:无

2)如果不能重建索引,我不确定……

【讨论】:

  • 不幸的是,重建我的索引是不可能的。
  • @Ge3ng Lucene 提供了一种“搜索”字段的方法...如果该“字段”一开始不存在,我认为我们无法检索文档。
  • @Ge3ng 如果您可以详细说明,可能会找到一种解决方法.. - 索引统计信息(大小、术语),您必须多久以您指定的方式查找文档,可能获得更多信息...
  • @Ge3ng,顺便说一句,你能在索引中添加一个新文档吗?
猜你喜欢
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
  • 2014-10-12
相关资源
最近更新 更多