Группировка / огранка по нескольким полям в лазурном поиске - PullRequest
0 голосов
/ 09 мая 2018

Я хочу группировать / огранять по нескольким полям, скажем, по полям «имя» и «тип» в поисковом индексе. Возможно ли это в поиске Azure. Если так, как это можно сделать?

1 Ответ

0 голосов
/ 09 мая 2018

Невозможно огранить объединенные значения нескольких полей. Вам придется самостоятельно денормализовать поля при заполнении индекса, а затем огранить денормализованное поле. Например, если у вас есть поля 'name' и 'type', вам нужно создать комбинированное поле 'nametype', содержащее комбинацию 'name' и 'type'. Затем вы должны обратиться к полю nametype в параметре facet поискового запроса.

Если раньше у вас был такой документ:

{ "id": "1", "name": "John", "type": "Customer" }

Теперь у вас будет такой документ: { "id": "1", "name": "John", "type": "Customer", "nametype": "John; Customer" } (Вы можете использовать любой разделитель, который вам нравится, между частью имени и частью типа nametype.)

Теперь, когда вы выполняете поиск, включите в запрос facet=nametype, и вы получите подсчет всех комбинаций 'name' и 'type', существующих в индексе.

...