Google api 谷歌云搜索-db.blobColumns

Google api 谷歌云搜索-db.blobColumns,google-api,google-search-api,Google Api,Google Search Api,我试图理解数据库连接器中的db.blobColumns属性——我基本上有一个500000个字符的庞大字符串,我想使用db.blobColumns上传此文本。根据blob的固有名称,我假设它需要一个二进制大对象?如果以前有人将此属性用于大型文本文件,请帮助我!我对这种特殊情况感到不知所措 以下是文档:我已尝试将db.blobColumn字段与数据库blob(二进制)内容一起使用,它通过从文件中提取文本和执行OCR(如果是图像)工作得很好。但是,它也接受数据库CLOB类型形式的文本内容 我建议您看看

我试图理解数据库连接器中的db.blobColumns属性——我基本上有一个500000个字符的庞大字符串,我想使用db.blobColumns上传此文本。根据blob的固有名称,我假设它需要一个二进制大对象?如果以前有人将此属性用于大型文本文件,请帮助我!我对这种特殊情况感到不知所措


以下是文档:

我已尝试将db.blobColumn字段与数据库blob(二进制)内容一起使用,它通过从文件中提取文本和执行OCR(如果是图像)工作得很好。但是,它也接受数据库CLOB类型形式的文本内容

我建议您看看数据库连接器的代码。这里重要的两个主要文件是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);   
}
private ByteArrayContent createBlobContent(映射所有列值){
字节[]字节;
Object value=allColumnValues.get(columnManager.getBlobColumn());
如果(值==null){
返回null;
}else if(字符串的值实例){
字节=((字符串)值).getBytes(UTF_8);
}else if(字节[]的值instanceof){
字节=(字节[])值;
}否则{
抛出新的InvalidConfigurationException(//允许SDK发送仪表板通知
无效的Blob列类型。列:“+columnManager.getBlobColumn()
+“对象类型:”+value.getClass().getSimpleName());
}
返回新的ByteArrayContent(null,字节);
}
上面来自DatabaseRepository.java文件的代码片段负责生成推送到云搜索的blob内容(二进制)。Clob和Blob的内容以字节[]的形式到达该函数。并按原样推送到云搜索

注:

谷歌云搜索将只索引您内容的前10MB 不管它是文本文件还是二进制内容