이 문제에 대한 몇 가지 관련 솔루션을 발견했습니다. 내가 설명 할 것처럼 관련 솔루션이 나를 위해 작동하지 않습니다. (Solr 4.0과 Oracle 11g 데이터베이스에 저장된 색인 데이터를 사용하고 있습니다.)Solr 4.0+를 사용하여 데이터베이스 BLOB로 포함 된 리치 형식의 문서를 어떻게 인덱싱합니까?
Jonck van der Kogel의 관련 솔루션 (2009 년)은 here으로 설명되어 있습니다. 그는 Solr과 함께 제공되는 ClobTransformer와 같은 일종의 사용자 지정 Transformer를 만드는 것에 대해 설명합니다. 이것은 우아한 경로로 내려 가고 있지만 현재 Solr와 통합 된 Tika를 사용하지 않습니다. (그는 외부 PDFBox 및 FontBox를 사용합니다.) 이로 인해 여러 유지 관리/업그레이드 종속성이 만들어집니다. 또한 PDF 이외에도 Word 문서를 인덱싱 할 수 있어야합니다.
Kogel의 솔루션이 올바른 방향에있는 것처럼 보이기 때문에 Solr에 포함 된 Tika 클래스를 사용자 정의 Transformer에 사용하는 방법이 있습니까? 그러면 Kogel의 우아한 데이터베이스 솔루션으로 모든 Tika 기능을 사용할 수 있습니다.
또 다른 관련 솔루션은 Solr과 함께 제공되는 ExtractingRequestHandler (ERH)입니다. 그러나 이름에서 알 수 있듯이 리치 텍스트 문서의 HTTP 게시물을 처리하는 것과 같은 요청 처리기입니다. 이 방법으로 데이터베이스에서 문서를 추출하려면 성능 및 보안 문제가 있습니다. HTTP를 통해 데이터베이스 BLOB에 액세스 가능하게해야합니다. 데이터베이스 BLOB에서 직접 가져 오기에 ERH를 사용하는 것에 대한 논의는 발견하지 못했습니다. Solr Cell을 사용하여 데이터베이스 BLOB에서 직접 가져올 수 있습니까?
또 다른 관련 솔루션은 Byte []를 (DataImportHandler FAQ에서) 문자열로 변환하기 위해 Transformer (Kogel 's 위와 같음)를 작성하는 것입니다. 진정한 바이너리 문서를 사용하면 정크를 색인에 넣고 Tika처럼 텍스트 요소를 제대로 추출하지 않게됩니다. 작동하지 않습니다.
마지막으로 관련 솔루션은 RichDocumentHandler에서 제공하는 UpdateRichDocuments입니다. 이것은 더 이상 사용되지 않으며 Solr에서는 더 이상 사용할 수 없습니다. 페이지는 ExtractingRequestHandler (위에서 언급 한)를 참조합니다.
올바른 해결책은 Tika 클래스를 사용하여 DataImportHandler와 고객 Transformer를 사용하는 것입니다. 이게 어떻게 작동합니까?
어떻게 찾지 못했습니까? 어쨌든, 나는 이것이 작동하도록 할 수 있는지를 알기 위해 갈 것이고, 그렇다면 나는 돌아와서 받아 들일 것이다. 감사 – DarkerIvy