Как установить значение в списке в качестве ключа для Azure Cognitive Search - PullRequest
0 голосов
/ 08 января 2020

Данные, которые у меня есть, имеют форму {"event": {"custom": {"sizes": [{"Id": ....}, {}, ... {}]},. ..}, ...} Ключ, по которому мне нужно индексировать, находится в списке. Однако Cognitive Search не позволяет мне получить доступ к значению в списке. Azure Cog. Поиск также не может получить доступ к любому контенту из списка при попытке индексации. Есть ли какие-либо решения, которые вы можете подумать?

Ответы [ 2 ]

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

При использовании индексаторов для импорта данных ключевые поля ограничиваются тем, что может быть выражено в сопоставлении полей , которое имеет некоторую поддержку функций сопоставления , но не позволяет выбирать стоимость объекта в коллекции. Ваши единственные варианты - предварительно обработать и преобразовать данные (например, запрос, если он поступает из Cosmos DB, или триггер функции azure, если он поступает из BLOB-объектов), или использовать другое поле в качестве идентификатора и поместить идентификатор измерения в другое поле для запроса.

Чтобы сделать данные запрашиваемыми, вы можете использовать сложные типы или, если измерения всегда находятся в одном и том же порядковом числе, вы можете использовать сопоставления выходных полей чтобы сопоставить его с полем по порядковому номеру коллекции, например /document/event/custom/dimensions/1.

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

Не знаю, как вы пытаетесь, но Azure Cognitive Search поддерживает сложные типы. Посмотрите следующую ссылку:

https://docs.microsoft.com/en-us/azure/search/search-howto-complex-data-types

В качестве альтернативы вы можете проецировать внутренние размеры (при условии, что они имеют фиксированное число измерений) в поля в вашем индексе.

...