Я внедряю Solr для свободного текстового поиска по проекту, в котором записи, доступные для поиска, необходимо будет добавлять и удалять в большом масштабе каждый день.
Из-за масштаба, который мне нужно сделать,убедитесь, что размер индекса соответствует.
В моей тестовой установке Solr я проиндексировал набор из 10 документов.Затем я внесу изменения в один из документов и хочу заменить документ с тем же идентификатором в индексе.Это работает правильно и ведет себя как ожидалось, когда я ищу.
Я использую этот код для обновления документа:
getSolrServer().deleteById(document.getIndexId());
getSolrServer().add(document.getSolrInputDocument());
getSolrServer().commit();
Я заметил, что когда я смотрю на страницу статистики длясервер Solr, что цифры не соответствуют ожиданиям.
После начального индекса numDocs и maxDocs равны 10, как и ожидалось.Однако когда я обновляю документ, numDocs по-прежнему равен 10 (ожидаемый), но maxDocs равен 11 (неожиданный).
При чтении документации я вижу, что
maxDoc может быть большепоскольку в число maxDoc входят логически удаленные документы, которые еще не были удалены из индекса.
Итак, вопрос в том, как удалить логически удаленные документы из индекса?
Если эти документы все еще существуют в индексе, могу ли я подвергнуться риску снижения производительности, если он выполняется с очень большим объемом документов?
Спасибо:)