У меня есть Azure WebJob с очередью, которая получает элементы для обработки. Каждый этап может обрабатывать много элементов. Очередь обрабатывает около 20 элементов одновременно.lucene.net - как часто обновлять индекс?
Я хочу индексировать элементы с помощью Lucene .net.
Запуск IndexWriter, вызов Optimize() и удаление его на каждый элемент, попадающий в очередь, занимает слишком много времени. Мне кажется, что я делаю это неправильно.
Я хочу, чтобы товары были готовы к поиску как можно скорее.
Можно ли иметь один индекс для многих потоков?
Нужно ли мне звонить Оптимизировать(), или это нормально никогда не вызывать его или вызывать его на отдельный процесс, который работает один раз в день (например)?
Если у меня есть только один IndexWriter и никогда не удаляйте его (кроме случаев, когда программа выходит), у меня были бы новые элементы, застрявшие в буфере?
Могут ли новые предметы, добавленные в IndexWriter, быть доступны для поиска, прежде чем удалять IndexWriter?
спасибо.