我编写了一个ASP.NET网站并在win'08上运行(远程托管)。该应用程序查询11个非常大的Lucene索引(每个~100GB)。我在Page_load()上打开IndexSearchers并在用户会话期间保持打开状态。
我的问题:
查询需要大约5秒才能完成 - 可以理解这些是非常大的索引 - 但用户希望更快的响应。我很想要挤出更好的表现。 (我确实查看了Apache Lucene网站并尝试了一些想法)。对if&amp ;;感兴趣你是如何进一步调整它的,特别是从asp.net的角度来看。
一个想法是使用Solr而不是直接查询Lucene。但这似乎是违反直觉的,介于两者之间的另一个抽象,可能会增加延迟。移植到Solr是否值得头痛?任何人都可以分享一些指标,了解在转换到Solr之后您获得的改进是否值得。
是否有一些密钥可以在Solr中完成,可以复制以加快响应时间?
答案 0 :(得分:1)
一些问题/想法:
答案 1 :(得分:0)
最重要的是从Web层删除搜索,并将其隔离到自己的层(搜索层)。这样,你有一个专用的盒子,里面有专门的资源,它们加载了索引,并在缓存中“预热”,而不是让每个用户拥有它自己的索引阅读器的副本。