【发布时间】:2014-04-30 12:30:17
【问题描述】:
我们有一位客户正在使用 Google Search Appliance (GSA) 搜索数千个 PDF 文件。 PDF 文件位于以子文件夹组织的文件共享上。它会定期查找新文件并将其添加到其数据库中。
GSA 不能很好地工作,所以现在他们需要替代方案。例如,他们的 GSA 无法正确搜索 PDF 中的垂直文本。我们已经将 Apache Lucene 和 Solr 与 Tika 和 ExtractingRequestHandler 一起查看。
我已经启动并运行了 Solr 示例,并使用 curl 添加了一个可以搜索的 PDF 文件,甚至可以搜索垂直文本。我们的客户希望应用程序自动检测新文件;如果我可以每 15 分钟或每小时重新索引一次数据库,那就太好了。
所以我正在考虑制作一个 shell 脚本来查找新文件并添加它们或类似的东西。也许在添加文件之前查询 Solr 以查看它是否已经在 Solr 中。这有意义吗?
此外,Solr 是否是我们想做的正确工具?
【问题讨论】:
-
就个人而言,我最近制作了something,就像您正在寻找的那样。这是一个基于 SolrJ 的简单 Java 应用程序,它可以像每晚一样进行索引,我想这将是最高效的。但是,您可以通过向小型数据库(基于散列或其他)添加类似缓存的功能来扩展应用程序以优化它。
-
嗨,Alex,看起来很整洁。感谢那!我认为它非常接近。
-
我刚刚更新了我的应用程序,支持增量更新。虽然我还没有在大文件集上测试过。
-
非常好的应用程序@AlexvandenHoogen。我认为第一个加速是将 SolrClient(或 SolrServer,如果使用 las 的 5.X 版本之外的 Solr)作为类字段,因此每次必须推送新文件时都不需要重新创建它。
-
@Mistre83 谢谢。果然,每次我将新文档插入索引时不提交也会大大提高性能。但是,由于其他承诺,目前我没有积极开发该应用程序。可能在接下来的几个月里,我可以做一个更新的版本。
标签: search pdf solr lucene indexing