【发布时间】:2011-01-03 06:10:39
【问题描述】:
考虑以下假设:
- 我有 Java 5.0 Web 应用程序,我正在考虑使用 Lucene 3.0 进行全文搜索
- Lucene 文档将超过 1000K,每个文档有 100 个单词(平均)
- 新文档必须在创建后立即可搜索(实时搜索)
- Lucene 文档经常更新名为 quality 的整数字段
在哪里可以找到接近实时搜索 Lucene 3.0 的代码示例(简单但尽可能完整)?
是否可以获得按可能经常更新的文档字段(质量)之一排序的查询结果(对于已索引的文档)?文档字段的这种更新将不得不触发 Lucene 索引重建?这种重建的表现如何?如何有效地完成它 - 我需要一些完整解决方案的示例/文档。
但是,如果在这种情况下不一定需要重建索引 - 如何有效地对搜索结果进行排序?可能有查询返回大量文档(>50K),因此我认为从 Lucene 中获取未排序的文档,然后按质量字段对其进行排序,最后将排序后的列表划分为页面进行分页是效率低下的。
Lucene 3.0 是我在 Java 中的最佳选择还是应该考虑其他一些框架/解决方案?也许是 SQL Server 本身提供的全文搜索(我使用的是 PostgreSQL 8.3)?
【问题讨论】:
标签: java search full-text-search lucene near-real-time