2012-10-09 72 views
0

我的理解是,通過Solr索引PDF,Word,Excel等文檔將允許搜索但不會突出顯示。我有這樣的代碼來執行索引:Solr - Tika - 解析內容以啓用突出顯示

 String urlString = "http://localhost:8983/solr"; 
     SolrServer solr = new HttpSolrServer(urlString); 
     ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract"); 

     for (MultipartFile file : files) { 
      if (file.getOriginalFilename().equals("")) { 
       continue; 
      } 
      File destFile = new File(destPath, file.getOriginalFilename()); 
      file.transferTo(destFile); 
      up.addFile(destFile); 

      up.setParam("literal.id", destFile.getAbsolutePath()); 
      up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true); 

      try { 
       solr.request(up); 

      } catch (SolrServerException sse) { 
       sse.printStackTrace(); 
      } 

     } 

    } 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } 

我已閱讀,爲了能夠突出我將需要「存儲/解析的內容?」如何才能做到這一點?謝謝你的幫助。

回答

2

您需要修改您的Solr實例的Schema文件,併爲content字段設置stored="true"。我假設您正在使用ExtractingRequestHandler的默認字段設置,以針對該字段返回高亮結果。

請參考Field Options By Use Case瞭解矩陣,並注意必須啓用哪些字段選項才能使突出顯示和其他功能正常工作。

+0

謝謝佩奇。我沒有在架構中找到內容字段。我可以創建一個,但似乎文本字段已經索引數據。將其存儲從false更改爲true會有什麼問題嗎?另外,我沒有更改ExtractingRequestHandler上的任何設置。 – James

+0

不,不存在更改文本字段存儲值的任何問題,因爲我假設您要強調這一點。 –

+0

這是正確的。看來ExtractingRequestHandler的默認設置是將其內容存儲到文本字段中(見下文)。所以,我會保留這個默認值並在文本字段上更改存儲的值。 ( <! - 所有主要內容進入「文本「...如果您需要返回 提取的文本或進行突出顯示,請使用存儲的字段。 - > text) – James