FieldCache com a atualização frequente do índice

O
Tenho um índice lucene que é atualizado com frequência com novos registros, tenho 5.000.000 de registros no meu índice e estou armazenando em cache um dos meus campos numéricos usando o FieldCache. mas depois de atualizar o índice, leva tempo para recarregar o FieldCache novamente (estou recarregando o cache, pois a documentação diz que o DocID não é confiável). Como minimizar essa sobrecarga adicionando apenas DocIDs recém-adicionados ao FieldCache? aplicação


IndexReader reader = IndexReader.Open(diskDir);
int[] dateArr = FieldCache_Fields.DEFAULT.GetInts(reader, "newsdate"); // This line takes 4 seconds to load the array
dateArr = FieldCache_Fields.DEFAULT.GetInts(reader, "newsdate"); // this line takes 0 second as we expected
// HERE we add some document to index and we need to reload the index to reflect changes

reader = reader.Reopen();
dateArr = FieldCache_Fields.DEFAULT.GetInts(reader, "newsdate"); // This takes 4 second again to load the array

Eu quero um mecanismo que minimize esse tempo adicionando apenas documentos recém-adicionados ao índice em nossa matriz. Existe uma técnica como estahttp: //invertedindex.blogspot.com/2009/04/lucene-dociduid-mapping-and-payload.htm para melhorar o desempenho, mas ainda carrega todos os documentos que já possuímos e acho que não há necessidade de recarregá-los se encontrarmos uma maneira de adicionar apenas documentos recém-adicionados à matriz

questionAnswers(2)

yourAnswerToTheQuestion