문제

나는 내 WebApp에 대한 Solr 기반 검색을 가지고 놀고 있으며 데이터베이스를 통해 앱과 동기화하기 위해 DataImporthandler를 사용하는 것이 가장 좋다고 생각했습니다. 나는 단지 확인하는 우아함을 좋아합니다 last_updated_date 필드. 좋은 것들. 그러나이 접근법으로 문서 삭제를 처리하는 방법을 모르겠습니다. 내가 보는 방식에는 두 가지 선택이 있습니다. 문서가 삭제 될 때 클라이언트에서 명시적인 메시지를 보낼 수 있거나 "삭제 된"플래그를 추가하고 데이터베이스에 객체를 남겨두면 Solr이 문서가 변경되었고 이제 삭제되었음을 알 수 있습니다. . " 삭제 된 플래그로 결과를 무시하는 쿼리 필터를 추가 할 수 있지만 Lucene 인덱스에 삭제 된 모든 문서를 포함시키는 것은 비효율적 인 것 같습니다. 다른 사람들은 무엇을합니까?

도움이 되었습니까?

해결책

이것이 당신의 옵션입니다 :

  • 사용 DIH 특별 명령 $ deletedocbyid 또는 $ deletedocbyquery (Solr 1.4+ 필요)
  • 사용 청정 매개 변수 가져 오기 전에 DIH의 전체 색인을 삭제합니다.
  • 사용 PreimportDeleteQuery 가져 오기 전에 정리 될 내용을 정의합니다. (Solr 1.4+ 필요)
  • DIH 대신 데이터베이스 트리거를 사용하여 인덱스 업데이트를 관리합니다.
  • 어떤 종류의 ORM을 사용하는 경우 DIH 대신 차단 기능을 사용하십시오. 예를 들어 사용할 수 있습니다 최대 절전 모드 이벤트 업데이트에서 인덱스를 업데이트하려면 삽입 또는 삭제하십시오.

다른 팁

나는 "삭제 된"플래그를 좋아하므로 실제로 내 데이터를 삭제하지 않습니다! 편집증에 따라 다릅니다. 나는 Mauricio의 제안을 좋아한다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top