更新
我使用利用text
字段類型相同的單元測試。以下是我使用的聲明。請注意,我從宣言中刪除了分析儀部分。
<fieldType name="text" class="solr.TextField"/>
我是能夠成功地添加5億字符並建立索引。對於較高的值,我得到Java heap space
錯誤,這與solr無關。
我試圖通過向字段添加一個大的值來執行一個簡單的測試。我發現的限制是32,766字節。之後它投擲IllegalArgumentException
。 的fieldType
是string
。
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
@Test
public void test() throws IOException, SolrServerException {
SolrInputDocument document = new SolrInputDocument();
document.addField("profileId", TestConstants.PROFILE_ID);
StringBuilder builder = new StringBuilder();
for (int i = 0; i<32767; i++) {
builder.append((char)((i%26)+'a'));
}
document.addField("email", builder.toString());
solrClient.add(document);
solrClient.commit();
}
異常通過上述用於32767和更拋出:
引起:java.lang.IllegalArgumentException異常:文檔包含=「電子郵件字段中的至少一個巨大術語「(其UTF8編碼比最大長度32766長),所有這些都被跳過。請糾正分析儀不要產生這些條款。第一個巨大術語的前綴是:'[97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116 ,117,118,119,120,121,122,97,98,99,100] ...',原始消息:字節長度最多可以是32766;;得到32767
我希望這會有所幫助。
是什麼驅動您需要將大量XML文檔發送到Solr?他們會被索引爲可搜索性,或只是存儲並返回結果? – STW
答案中有更新,我之前發佈。請檢查。 – YoungHobbit
你使用的是哪個版本?在Solr 3和4之間對此進行了改變。 – cheffe