簡體   English   中英

使用Lucene的缺點是什么?

[英]What are the downsides of using Lucene?

我正在考慮在我的項目中使用Lucene來進行非常快速的搜索。 我知道Lucene創建了自己的文件,它保存所有的數據/索引。

我想知道使用Lucene的缺點是什么? 有嗎?

您是否必須對文件數據庫執行任何操作,或者在沒有任何外部幫助的情況下工作得很好?

PS我知道還有Lucene .NET,我打賭同樣的規則適用於那里。

Lucene很棒。 非常靈活,令人驚訝的快速,以及可靠的API。 郵件列表非常有用。

這些文件確實需要一些維護,但可以使用提供的工具完成。 最重要的是偶爾優化索引,但只有在定期更新索引時才需要這樣做。

我建議也要考慮Solr。 它本質上是一個位於Lucene之上的webapp和工具。 它使創建新索引,保持優化以及為可伸縮搜索集群提供主/從同步變得更加容易。 當然,這取決於您的實際需求。

舉個例子,我曾經為一家知名的大型游戲公司維護一個搜索索引。 該索引擁有數十萬種多語言(全球)和語言環境的條目。 它每天在集群上執行一百萬次搜索,幾乎不使用任何CPU和合理的內存量。 它已經在我們擁有的硬件上進行了大約3億次搜索的負載測試,並且可以通過簡單地向cluser添加更多的盒子來線性擴展。 Solr和Lucene是這方面的主要工具。

如果我不得不給出一個缺點,那就是學習曲線。 有一點需要理解,如果你想要一個真正優化的解決方案,你需要很好地了解它。 但是,如果您自己執行此操作,則會使用您使用的任何搜索工具。 文檔,維基和郵件列表為此提升提供了大量支持。

我對Lucene的經驗有限,到目前為止它一直很棒。 我能看到的缺點主要來自業務方面:

  1. 我必須積極地將Lucene用於我的老板,默認我們會使用SQL Server。 為了進行切換,我必須毫無疑問地證明Lucene對於我們的用例表現更好(而不僅僅是類似)。 我想這個問題是“沒有人因購買IBM設備而被解雇”。
  2. 特別是Lucene.Net正在進行的開發/錯誤修復在這一點上是值得懷疑的,再次更難以出售。 我希望社區能夠團結起來。

Lucene為很多人和公司做了很多工作。 不過,您的里程可能有所不同。 一個可能的問題是Lucene的評分模型 - 它使用TF / IDF和布爾評分的組合,而其他IR工具使用概率更強的BM25。 但是,您可能會與Lucene合作多年,搜索結果也足夠好。 此外,擴展到數百萬個文檔並不容易。

它歸結為您的具體用例。 最好使用Solr開始測試,看看是否符合您的需求。

Lucene確實存在可擴展性問題。 當索引越來越大時,其性能會下降。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM