Google Cloud Search-db.blobColumns

问题描述 投票:0回答:1

我正在尝试了解数据库连接器中的db.blobColumns属性---本质上,我有一个包含500,000个字符的庞大字符串,我想使用db.blobColumns上载此文本。通过blob的固有名称,我假设它正在期待一个二进制大对象?如果以前有人将此属性用于大文本文件,请帮助我!我对这种特殊情况不知所措。

这里是文档:https://developers.google.com/cloud-search/docs/guides/database-connector#content-fields

google-api google-search-api
1个回答
0
投票
我建议您看一下数据库连接器here的代码。这里最重要的两个文件是DatabaseAccess.java和DatabaseRepository.java。

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编制索引无论是文本文件还是二进制内容。

© www.soinside.com 2019 - 2024. All rights reserved.