Azure Поиск: значение поля метаданных BLOB-объектов не отображается в индексированных данных - PullRequest
0 голосов
/ 03 марта 2020

Мы установили метаданные для блочного блоба и можем проверить, правильно ли указан ключ / значение на блобе. enter image description here

Из многих полей, определенных в индексе, только одно значение поля (PromotionId) не отображается в индексированных данных, что можно подтвердить, выполнив поиск через «Исследователь поиска». enter image description here

Это поле фактически сопоставлено с ключом "ID" в индексаторе. enter image description here

И был определен в Индексе. enter image description here

Почему значение этого поля c не отображается в индексе? Остальные все поля метаданных все появляются в индексе, как и ожидалось.

1 Ответ

1 голос
/ 03 марта 2020

Сопоставление полей не работает, поскольку в качестве sourceFieldName указано «ID», но в исходном BLOB-объекте отсутствует свойство идентификатора, поскольку оно существует только в указанном вами индексе.

Это может быть немного сбивает с толку, поскольку он ведет себя так, как будто существует свойство "ID", поскольку поле "ID" заполняется без сопоставления полей. Однако это связано с тем, что Azure Поиск автоматически сопоставляет «metadata_storage_path» с тем, какое поле является ключом документа, если не указано сопоставление полей для ключа документа. Это поведение задокументировано здесь .

Если вы хотите, чтобы PromotionId был путем к документу, как поле идентификатора, вы можете изменить sourceFieldName на «metadata_storage_path» для сопоставления поля PromotionId. Если вы также хотите иметь кодировку base64, вы можете добавить функцию fieldMappingFunction к отображению поля.

...