我正在尝试了解数据库连接器中的db.blobColumns属性---本质上,我有一个包含500,000个字符的庞大字符串,我想使用db.blobColumns上载此文本。通过blob的固有名称,我假设它正在期待一个二进制大对象?如果以前有人将此属性用于大文本文件,请帮助我!我对这种特殊情况不知所措。
这里是文档:https://developers.google.com/cloud-search/docs/guides/database-connector#content-fields
private ByteArrayContent createBlobContent(Map<String, Object> allColumnValues) {
byte[] bytes;
Object value = allColumnValues.get(columnManager.getBlobColumn());
if (value == null) {
return null;
} else if (value instanceof String) {
bytes = ((String) value).getBytes(UTF_8);
} else if (value instanceof byte[]) {
bytes = (byte[]) value;
} else {
throw new InvalidConfigurationException( // allow SDK to send dashboard notification
"Invalid Blob column type. Column: " + columnManager.getBlobColumn()
+ "; object type: " + value.getClass().getSimpleName());
}
return new ByteArrayContent(null, bytes);
}
DatabaseRepository.java文件中的以上代码片段负责生成被推送到Cloud Search的Blob内容(二进制)。 Clob和Blob的内容以byte []的形式出现在此函数中。并按原样推送到Cloud Search。
here的注释:Google云搜索将仅为您的内容的前10 MB编制索引无论是文本文件还是二进制内容。