在您的应用中使用Solr客户端时,text多行字段的最大大小是多少?
我可以将巨大的xml文档作为文本发送吗?
例如
SolrInputDocument document = new SolrInputDocument();
document.addField("id", rec.getId());
document.addField("hugeTextFile_txt", hugeTextFile);
UpdateResponse response = solr.add(document);
solr.commit();
Run Code Online (Sandbox Code Playgroud)
You*_*bit 10
更新
我使用textfieldType进行了相同的单元测试.以下是我使用的声明.请注意,我已从声明中删除了分析器部分.
<fieldType name="text" class="solr.TextField"/>
Run Code Online (Sandbox Code Playgroud)
我能够添加500,000,000个字符并成功编入索引.对于更高的值,我得到了Java heap space错误,这与solr无关.
我尝试通过向字段添加大值来执行简单测试.我发现的限制是32,766字节.之后,它抛出IllegalArgumentException.在fieldType为email是string.
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
Run Code Online (Sandbox Code Playgroud)
@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();
}
Run Code Online (Sandbox Code Playgroud)
上面抛出的32767以上的异常:
引起:java.lang.IllegalArgumentException:Document在field ="email"中包含至少一个巨大的术语(其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
我希望这会有所帮助.
| 归档时间: |
|
| 查看次数: |
8229 次 |
| 最近记录: |