Могу ли я использовать один и тот же экземпляр IndexSearcher в Lucene.Net несколькими потоками одновременно? - PullRequest
4 голосов
/ 18 июля 2009

Я хочу иметь возможность поиска по нескольким клиентам и индексирования одновременно в Lucene.Net

Возможно ли это и безопасно для потоков?

Может ли один и тот же экземпляр IndexSearcher быть общим для всех потоков?

Ответы [ 3 ]

5 голосов
/ 23 июля 2009

Поиск индекса МОЖЕТ и ДОЛЖЕН быть общим для всех потоков.

Хитрость в том, чтобы решить, когда обновить поисковик новым снимком индекса.

Я написал статью, показывающую, как я кодировал разделение поисковика по потокам, и в то же время следил за тем, чтобы поисковик всегда использовал обновленный индекс.

Я не говорю, что мое решение является лучшим для всех - я не думаю, что это будет хорошо для веб-сайта с огромным количеством поисковых запросов, - но оно отлично работает для моего приложения с низким объемом

Вот статья:

http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx

1 голос
/ 18 июля 2009

Да. Очень много .
Даже индексация есть!

0 голосов
/ 19 июля 2009

Вы можете индексировать и выполнять поиск одновременно, но внесенные в индекс изменения не будут видны поисковику, пока вы не создадите его заново. Поисковик будет иметь снимок индекса при создании объекта поисковика.

...