Pergunta

Atualmente estou correndo Lucene.net em uma aplicação web e estou querendo saber sobre o melhor método, em termos de performance.

Actualmente tenho que configurar para que todas as gravações de índice são processadas juntos em um processo agendado, juntamente com a otimização do índice.

No entanto, para a pesquisa -. Atualmente estou abrindo e fechando o pesquisador por pesquisa, que eu sei que não é o ideal

O que você acha que seria a melhor abordagem nesta situação?

Vou precisar para fechar e reabrir o pesquisador índice uma vez que a atualização / otimização é processado assim que o processo programado (que é um console aplicativo Windows) precisa comunicar que terminou com a aplicação web.

Foi útil?

Solução

Eu só integrado Lucene.NET em BugTracker.NET. Eu não tenho certeza de que o que eu fiz é a melhor, mas parece estar funcionando bem.

Eu criar o índice na inicialização do aplicativo.

Eu criar um buscador e mantê-lo em torno de modo que o índice não é recarregado com cada pesquisa. Todos os segmentos compartilham o mesmo pesquisador. Quando as pesquisas pesquisador, ele agarra um bloqueio.

Enquanto isso, eu tenho uma IndexWriter que atualiza o índice quando há uma mudança de dados. Ele é apenas mudar um pouco para que ele faz a sua rápida tarefa. Quando ele é executado, ele agarra o mesmo bloqueio, destrói o pesquisador, atualiza o índice, ea re-recria o pesquisador. As novas estadias pesquisador ao redor até a próxima atualização do índice. O pesquisador sempre está trabalhando com um índice up-to-date.

Você pode obter a fonte BugTracker.NET e olhar para o my_lucene.cs arquivos e search_text.aspx. É tudo nesses dois arquivos, e não há muito código.

Outras dicas

Você poderia chamar para o método leitores IsCurrent () para verificar se há uma nova versão do índice disponível, e se é, em seguida, reabri-lo. não poderia ser a melhor maneira, mas é fácil o suficiente e se suas exigências não são muito grandes, será suficiente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top