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

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


person Brandon Yarbrough    schedule 12.10.2009    source источник


Ответы (2)


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

  • Используйте специальные команды DIH $deleteDocById или $deleteDocByQuery (требуется Solr 1.4+)
  • Используйте параметр очистки DIH, чтобы удалить весь индекс перед импортом.
  • Используйте preImportDeleteQuery, чтобы определить, что будет очищено перед импортом. (требуется Solr 1.4+)
  • Используйте триггеры базы данных вместо DIH для управления обновлением индекса.
  • Если вы используете какой-то ORM, используйте его возможности перехвата вместо DIH. Например, вы можете использовать события гибернации для обновления индекса при обновлении, вставке или удалении.
person Mauricio Scheffer    schedule 13.10.2009
comment
Это отличный список! Я все еще использую 1.3, но это убедительная причина задуматься о переключении. - person Brandon Yarbrough; 13.10.2009
comment
да, Solr 1.4 только что вышел в RC, финальный релиз неизбежен. - person Mauricio Scheffer; 15.10.2009
comment
Привет, Маурисио, есть ли хорошие примеры использования preImportDeleteQuery при дельта-импорте удаленных документов? - person Joyce; 12.01.2011
comment
Есть ли иллюстрации о том, как использовать специальные команды? Их нужно добавлять в строку с помощью скрипта? - person pr4n; 13.06.2012

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

person Eric Pugh    schedule 13.10.2009