Neo4j · Neo4j 5.26.20
Бот eBay для Google Assistant держал каталог и диалоги в графе Neo4j: на запрос «brown bags» он решает, что уточнить дальше — бренд, размер, бюджет.
Граф: (:Listing {id, price_usd})-[:IN]->(:Category {name}), (:Listing)-[:HAS {value}]->(:Attribute {name}). У одного объявления атрибут может встречаться несколько раз (разноцветная сумка: два HAS к Color).
Для категории Handbags верните атрибуты, заполненные хотя бы у половины объявлений категории: attribute, covered (сколько объявлений), variants (сколько разных значений). Порядок — по variants по убыванию, затем по имени. Половину считаем от всех объявлений категории, в том числе без атрибутов.
В работе: Выбор уточняющего вопроса в диалоговом поиске товара.
Источник: кейс Neo4j: eBay ShopBot / приложение eBay для Google Assistant, 2017. Условие пересказано своими словами.
Какой запрос выберет атрибуты для уточняющего вопроса?
- total по объявлениям с атрибутами
- total по всем объявлениям, count(DISTINCT l) и count(DISTINCT h.value), оба MATCH от категории
- count(h.value) без DISTINCT
- второй MATCH без категории