Lucene.NET只读IndexSearcher

Mat*_*att 1 lucene.net

如何使用IndexSearcher以便它不会锁定索引并以只读模式打开它?

现在我就是

var searcher = new IndexSearcher(LuceneIndexPath);
Run Code Online (Sandbox Code Playgroud)

我一直在阅读以只读模式打开性能提升性能,所以我想知道如何去做.我找不到关于这个主题的大量文档.

Rob*_*ell 11

如果这就是你所拥有的,你应该稍后担心性能.在您诉诸索引权限之前,这里有一些提示让您使用Lucene的提示:

  • Lucene 不是一个数据库; 这是一个索引.除非索引之外的所有字段都以非常有效的方式最小化.进行搜索时,查询也会被最小化,以便匹配数据的这些唯一哈希值.您未存储的任何搜索内容都应该是您将用于数据库中恢复信息的内容.这可以将索引大小(以及搜索速度)降低一个数量级.
  • 干一切 -使用somethign甚至像Porter Stemmer一样简单,以减少文本中单词的长度.在进行查询时,也要进行查询.虽然这对索引的大小和查询速度影响很小,但这也会提高搜索的稳健性,这同样重要.
  • 停用词?谁需要他们?说真的,找到一个很好的停用词列表,并将其从您计划编制索引的任何字段中删除.您在任何英文文本中找到的最常用术语在信息检索方面绝对毫无价值.话虽这么说,如果你存储它们,你的数据库可能非常不必要.想象一下,漫步在人行道上写的同样大小的字母.与"好,坏,丑"相比,"好,坏,丑"需要多长时间?

确保首先解决这三个主要方面,您可能不需要担心性能问题.在解决这些问题之前担心性能将是众所周知的邪恶"过早优化"之一.