【问题标题】:Lucene index updation and performanceLucene 索引更新和性能
【发布时间】:2009-01-16 03:32:10
【问题描述】:

我正在开发一个求职门户网站,并且一直在使用 Lucene 来实现求职功能。 用户每天都会在我们的网站上发布一些职位。我们需要确保发布的新职位可以尽快在网站上搜索到。 在这种情况下,当发布新工作或编辑现有工作时,如何更新 Lucene 索引? lucene 索引更新和搜索可以并行工作吗?

另外,我能知道关于 Lucene 索引、优化、性能等方面的任何提示/最佳实践吗?

感谢您的帮助!

谢谢!

【问题讨论】:

  • 我的建议是,直接从应用程序层使用 Lucene 几乎总是错误的方法。除非应用程序特别需要低级索引访问,否则我总是建议在更高级别进行访问,即 Solr 或 Elasticsearch。如果您的应用成功并且您需要扩展,那么管理您自己的索引文件很快就会变得非常耗时。

标签: lucene


【解决方案1】:

是的,只要不超过 1 个 IndexWriter 写入,Lucene 就可以同时搜索和写入索引。如果您希望新记录尽快可见,请让 IndexWriter 经常调用 commit() 函数(有关详细信息,请参阅IndexWriter's JavaDoc)。

这些 Wiki 页面也可能有帮助:

ImproveIndexingSpeed

ImproveSearchingSpeed

【讨论】:

    【解决方案2】:

    我在与您所做的类似的网站上使用了 Lucene.Net。是的,您可以进行实时索引、更新以使所有内容保持最新?你在什么平台上使用 Lucene,.NET,Java?

    【讨论】:

    • 我正在使用 .net..任何关于索引和优化的建议?谢谢
    • @Craig,你有没有代码可以展示你如何处理更新和读取?
    【解决方案3】:

    确保您创建一个新的 IndexSearcher,因为在创建 IndexSearcher 之后添加的任何内容对该实例均不可见。

    如果您想重新使用相同的索引搜索器,更好的方法可能是重新打开 IndexReader。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多