Как сгруппировать по полю в Azure Search

Мне нужно запросить индекс с пейджингом, а индекс содержит огромное количество документов. Запрос также должен группироваться по одному из полей. Можно ли группировать по полю в поиске Azure?

Спасибо!


person doorman    schedule 19.02.2015    source источник


Ответы (1)


Для группировки полей я бы посоветовал вам использовать возможность фасетирования, которая позволяет вам получить количество значений в поле. Здесь есть несколько хороших примеров фасетирования: https://msdn.microsoft.com/en-us/library/azure/dn798927.aspx?f=255&MSPPError=-2147217396

Кроме того, я не уверен, что вы спрашиваете, можно ли выполнять разбиение по страницам с помощью поиска Azure, но ответ положительный, и вы можете сделать это с помощью параметров $skip и $top. Есть также примеры этого в приведенной выше ссылке.

Лиам

person Liam Cavanagh - MSFT    schedule 19.02.2015
comment
Привет @Liam, мой вариант использования заключается в том, что я запрашиваю индекс с пейджингом, и это работает нормально. Я пытаюсь получить список отдельных документов для определенного поля. Поэтому я надеялся, что в поиске Azure есть отдельная или групповая функция. Я не уверен, как я могу использовать фасетирование для этого варианта использования? - person doorman; 19.02.2015
comment
Ясно, то, что вы просите, это список документов, где, скажем, field1, field2 и field3 одинаковы? Если это так, то нет хорошего способа сделать это (о котором я могу думать), кроме как создать новое поле, которое объединяет field1, field2, field3, а затем вы граните это объединенное поле, чтобы найти количество групп. - person Liam Cavanagh - MSFT; 20.02.2015
comment
Привет @Liam, на самом деле я понял, что просто ищу эквивалент отдельной функции в SQL, и мне не нужно ничего считать. Я пытаюсь выполнить запрос с одним из отдельных полей. Это возможно? - person doorman; 20.02.2015
comment
Звучит как $filter. Если вы ищете определенный набор документов с определенным набором полей, вы можете использовать $filter для ограничения результатов. Например, $filter=field1 eq 'foo'. Не могли бы вы посмотреть на этой странице более подробную информацию о $filter, чтобы узнать, может ли это выполнить то, что вам нужно? msdn.microsoft.com/en-us/library/azure/dn798927. aspx - person Liam Cavanagh - MSFT; 22.02.2015
comment
Привет, @Liam, спасибо за ваш отзыв. Я посмотрю на это получше. - person doorman; 23.02.2015