Ошибка при копировании индекса Lucene - PullRequest
0 голосов
/ 18 июля 2009

У меня есть веб-приложение asp.net, которое использует Lucene API для поиска. Вот сценарий проблемы:

События:

  1. Пользователь вызывает поисковый запрос Lucene через веб-приложение.
  2. Работает другая служба Windows, которая просто копирует папку индекса поиска в другую папку.

Когда событие 2 происходит после того, как событие 1 произошло, я получаю ошибку ниже при копировании индекса:

The process cannot access the file 'C:\Indexes\segments.gen'
because it is being used by another process.

Что мне здесь не хватает?

К вашему сведению, я использую System.IO.File.Copy с перезаписью, установленной в true, для копирования файлов индекса.

Ответы [ 2 ]

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

Проблема в том, что первое событие блокирует файлы Lucine. Вы можете создать 2 копии одного и того же индекса и синхронизировать свои процессы, чтобы не мешать друг другу

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

Я описал, как я использовал Lucene.NET в приложении ASP.NET здесь:
http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx

Мой код может быть неправильным для большого сайта, но для небольшого объема он, похоже, решает вашу проблему.

...