Solr DIH — Как обрабатывать удаленные документы?

StackOverflow https://stackoverflow.com/questions/1555610

  •  20-09-2019
  •  | 
  •  

Вопрос

Я играю с поиском на базе Solr для моего веб-приложения, и я подумал, что было бы лучше использовать DataImportHandler для обработки синхронизации с приложением через базу данных.Мне нравится элегантность простой проверки last_updated_date поле.Хорошая штука.Однако я не знаю, как справиться с удалением документов при таком подходе.Насколько я понимаю, у меня есть 2 варианта.Я мог бы либо отправить явное сообщение Solr от клиента при удалении документа, либо я мог бы добавить флаг "удалено" и оставить объект в базе данных, чтобы Solr заметил, что документ изменился и теперь "удален". Я мог бы добавить фильтр запросов, который игнорировал бы результаты с флагом deleted, но кажется неэффективным включать все удаленные документы в индекс Lucene.Что делают другие люди?

Это было полезно?

Решение

Это ваши варианты:

  • Использование РАЗЛИЧНЫЕ специальные команды $deleteDocById или $deleteDocByQuery (требуется Solr 1.4+)
  • Используйте чистый параметр из DIH, чтобы удалить весь индекс перед импортом.
  • Использование Предварительный запрос чтобы определить, что будет очищено перед импортом.(требуется Solr 1.4+)
  • Используйте триггеры базы данных вместо DIH для управления обновлением индекса.
  • Если вы используете какой-то ORM, используйте его возможности перехвата вместо DIH.Например, вы можете использовать события гибернации чтобы обновить индекс при обновлении, вставьте или удалите его.

Другие советы

Мне нравится иметь флаг "удалено", чтобы на самом деле я не удалял свои данные!Зависит от того, насколько ты параноик.Мне нравятся предложения Маурисио...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top