2013-05-01 5 views
0

나는 solr search (solr 4.X)를 사용하고 있습니다. 모든 것이 예상대로 작동합니다. 관련 파일을 검색 결과와 함께 표시해야한다는 요구 사항이 있습니다.SOLR 관련 파일이있는 검색 결과

검색 결과가 표시되지만 파일은 표시되지 않습니다. 검색 결과와 함께 파일 이름을 기대하고 있습니다.

도움 주셔서 감사합니다. 도와주세요

+3

우리에게 스키마를 표시하고 파일 인덱스 및 쿼리하는 방법에 대한 우리에게 더 알려주세요. 그렇지 않으면 당신을 도울 수 없습니다. 감사합니다 – phisch

+0

답장을 보내 주셔서 감사합니다! 스키마는 정확히 예제 스키마입니다. post.jar를 사용하여 파일의 색인을 생성했습니다. 나는 solrj 클라이언트를 통해 solr을 질의했다. 내가 원하는 결과를 얻었지만 관련 파일도 결과와 함께 원합니다. 예 : 'solr'이라는 키워드를 검색하면 파일 이름이 아닌 모든 입력란에 결과가 표시됩니다. 파일 이름을 solr.xml 또는 anythong으로 예상합니다. 도와주세요. Thakns – Srini

+0

파일 이름을 인덱싱하지 않으면이 정보가 solr가 아니므로 다시 가져올 수 없습니다. 결과 세트에 파일 이름이 필요하면 파일을 색인화하고 저장해야합니다. – phisch

답변

0

Solr는 일반 엔터프라이즈 검색 서버입니다. 파일이나 색인을 생성하는 데이터의 출처에 대해서는 알지 못합니다. 너 혼자 할거야.

스키마 (schema.xml)는 인덱싱 할 필드를 정의합니다. 스키마를 설계 할 때, 저장된 내용과 어떤 방식으로 결정해야합니다.

파일 이름을 다시 사용하려면 먼저 스키마에 필드를 제공하고 색인에 항목을 추가 할 때마다 해당 필드를 채우는 대신 파일 이름을 수동으로 색인에 추가해야합니다.

검색하려는 경우를 제외하고는 파일 이름을 토큰 화하지 않으려 고합니다. 파일 이름에 전체 경로가 포함되어 있으면 고유 한 것으로 간주 될 수 있으며이를 ID로 사용할 수도 있습니다.

xml을 통해 추가하는 경우 문서 목록에 새 필드가 있어야합니다. 당신이 solrj를 사용하는 경우

<doc> 
     ... 
     <field name="filename">/some/path/basename.extension</field> 
     ... 
    </doc> 

, 그것은 다음과 같이 보일 것입니다 :

HttpSolrServer server = new HttpSolrServer(host); 
    SolrInputDocument doc = new SolrInputDocument(); 
    doc.addField("filename", document.getFilename()); 
    Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); 
    docs.add(doc); 
    server.add(docs); 
+0

Phisch, 답변 해 주셔서 감사합니다. 한 가지 더, XML 파일의 경우 이해합니다. 똑같은 방법으로 pdf 파일을 얻을 수 있습니까? – Srini

+0

찾으려는 데이터를 PDF에서 추출하여 solr (문자열 형식)으로 보내야합니다. Apache Tika가 압축을 풉니 다. pdf 파일을 처리 할 수있는 DataImportHandler도 있지만 제한이 있습니다. – phisch

+0

알았습니다. 도와 주셔서 정말로 고맙습니다. – Srini