几种Lucene.Net打开IndexReader的方式
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                几种Lucene.Net打开IndexReader的方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                入門第一式:
IndexReader.Open(Dir,readOnly);
當readOnly為true的時候效率最高,最好不要用Reader刪除修改記錄;
入門第二式:
reader.Reopen(readOnly);
優點:比第一式效率高,推薦使用;
缺點:前提是需要有Reader存在;
入門第三式:
writer.GetReader();
優點:NRL的實現,對實時性要求高的不二選擇;
缺點:writer說它很痛苦,因為每次調用內部都會flush一次以保證所有index會被啟用;
?
追求效率(中階):
public class IndexReaderProxy{private IndexReader _indexReader;private readonly object _indexReaderLock = new object();public IndexReaderProxy(Directory directory, bool readOnly){_indexReader = IndexReader.Open(directory, readOnly);}public IndexReader GetCurrentIndexReader(){ReopenIndexReaderIfNotCurrent();return _indexReader;}private void ReopenIndexReaderIfNotCurrent(){if (_indexReader.IsCurrent()) return;lock (_indexReaderLock){if (_indexReader.IsCurrent()) return;var newIndexReader = _indexReader.Reopen();_indexReader.Close();_indexReader = newIndexReader;}}}?優點:效率和實時的一個平衡,在對實時要求不高的地方使用;
缺點:不屬于NRL范疇,對實時性要求較高的地方就無法使用了;
轉載于:https://www.cnblogs.com/jinzhao/archive/2012/05/03/2481018.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的几种Lucene.Net打开IndexReader的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Kickstart+NFS+DHCP+T
- 下一篇: 使用jQuery插件realshadow
