0
我正在使用以下Groovy代碼加載存儲在MongoDB中的文件,以便在Solr中建立索引。 (我已經創建了一個包含文件內容的文件對象以及文件名):如何將數據庫中的文件加載到Solr中
ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract")
def tempFile = new File("temp/temp-${file.name}")
tempFile.append(file.file) //file.file references the byte[] of the file
//append call writes the file to disk
up.addFile(tempFile, "application/octet-stream")
up.setParam("literal.id", file.id.toString())
up.setParam("literal.name", "ConsultantFile")
up.setParam("literal.fileName_s", file.name)
up.setParam("literal.creator_s", file.createdBy?.lastFirstName)
up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true)
server.request(up) //server object is the shared handle to the Solr instance
tempFile.delete()
所以,我已經有文件的字節數組,但我將其寫入磁盤,所以我可以使用addFile方法。然後,作爲清理,我刪除磁盤上的文件。它有效,但它很愚蠢。
我試圖取代up.addFile()的下面的代碼,但它拋出一個「非正常狀態:500消息:服務器錯誤」
def stringFile = new String(file.file, "UTF-8")
def stream = new ContentStreamBase.StringStream(stringFile)
up.addContentStream(stream)
什麼是索引的文件我的最佳方式已經在內存中,而不必將其作爲中間步驟寫入磁盤?