我編寫了一個ASP.NET網站,並在win'08上運行(遠程託管)。應用程序查詢11個非常大的Lucene索引(每個〜100GB)。我在Page_load()上打開IndexSearchers,並在用戶會話期間保持打開狀態。ASP.NET Lucene性能改進問題
我的問題:
的查詢需要約5秒鐘就可以完成 - 可以理解的,這些都是非常大的指標 - 但用戶需要更快的響應速度。我很好奇擠出更好的表現。 (我查看了Apache Lucene網站並嘗試了那裏的一些想法)。對如果&感興趣如何進一步調整它,特別是從asp.net角度來看。
一個想法是使用Solr而不是直接查詢Lucene。但這似乎與直覺相反,在兩者之間引入了另一種抽象,並可能增加延遲。移植到Solr是否值得頭痛?任何人都可以分享一些衡量標準,看看在改用Solr之後,如果它值得的話,你會得到哪些改進。
是否有一些鍵可以在Solr中完成的事情可以複製以加快響應時間?
對索引的查詢依賴於上下文。我在用戶會話期間持有11個搜索器。我猜這是低效的,但這是一項急功近利。我想重新設計;如果我理解正確,你會建議遷移到Solr(推測是多核)。感謝您的迴應! – Mikos 2010-04-09 19:25:36
你能以某種方式減少索引的數量嗎?所有的搜索都必須按順序執行嗎?藉助TPL,您可以使用延續創建未來任務並將其並行化。或者您可以嘗試彙集您的IndexSearchers以利用熱身活動。 – 2010-04-09 21:02:00
無法縮小/摺疊它們 - 每個索引都有不同的用途。例如:一個索引是出版物列表,一個是專家組,一個是一組關聯/研究機構,等等......每個都需要單獨進行查詢,特別是w.r.t上下文。 – Mikos 2010-04-10 07:02:30