任意数量的只读属性的IndexReader类都可以同时打开同一个索引.
无论这些Reader是否属于同一个JVM, 以及是否属于同一台计算机都无关紧要.
但需要记住, 在单个JVM内, 利用资源和发挥效率的最好办法是用线程共享单个的IndexReader实例
对于一个索引来说, 一次只能打开一个Writer. Lucene采用文件锁来提供保障. 一旦建立起IndexWriter对象, 系统会立刻分配一个锁给它.
该锁只有当IndexWriter对象被关闭时才会释放.
注意如果你使用IndexReader对象来改变索引的话, 比如修改norms或者删除文档, 这时IndexReader对象会作为Writer使用, 它必须在修改上述内容之前成功地获取Write锁, 并在被关闭时释放该锁
当IndexWriter对象已经打开一个索引时, 你可以同时直接使用IndexReader打开同一个索引.
每个IndexReader对象会得到一个对应时间点的索引”快照”, IndexReader只有在IndexWriter提交修改 或者 IndexReader自己被重新打开后才能获知索引的修改情况