Google Cloud Search - db.blobColumns - PullRequest
       37

Google Cloud Search - db.blobColumns

0 голосов
/ 12 января 2020

Я пытаюсь понять свойство db.blobColumns в коннекторе базы данных - по сути, я получил массивную строку из 500 000 символов, и я хочу использовать db.blobColumns для загрузки этого текста. Под присущим именем blob я предполагаю, что он ожидает большой двоичный объект? Если кто-то использовал это свойство ранее для больших текстовых файлов, пожалуйста, помогите мне! Я в растерянности с этой конкретной ситуацией.

Вот документы: https://developers.google.com/cloud-search/docs/guides/database-connector#content -поля

1 Ответ

0 голосов
/ 16 января 2020

Я попытался использовать поле 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);   
}

Выше фрагмента кода из DatabaseRepository. java файл отвечает за генерацию содержимого двоичного объекта (двоичного), которое подталкивается к облачному поиску. Содержимое Clob и Blob приходит к этой функции в виде байта []. И выдвигается как есть в Cloud Search.

Примечание от здесь :

Google Cloud Search будет индексировать только первые 10 МБ вашего контента, независимо от того, является ли он текстовым файлом или двоичным контентом.

...