我有一个带有队列的Azure WebJob,它接收要处理的项目。每秒可以处理许多项目。队列同时处理大约20个项目。
我想用Lucene .net索引项目。
启动IndexWriter,调用Optimize()并在每个击中队列的项目上处理它需要花费太多时间。感觉我做错了。
我希望这些项目能够尽快为搜索做好准备。
对于许多线程都有一个IndexWriter可以吗?
我是否需要调用Optimize()或者从来没有调用它,或者在每天运行一次的单独进程(例如)上调用它?
如果我只有一个IndexWriter并且从不处理它(程序退出时除外),我是否会在缓冲区中粘贴新项目?
在处理IndexWriter之前,使用IndexWriter添加的新项目是否可用于搜索?
谢谢。
答案 0 :(得分:4)
IndexWriter.OpenReader
抓取一个阅读器,使用近实时(NRT)搜索来提交它们。