Может ли Elasticsearch X-Pack возвращать вершины графа разных типов?

У меня есть данные типа product, загруженные в Elasticsearch, содержащие catalogue_number и name. У меня также есть данные customer, загруженные в Elasticsearch, содержащие name и purchases (где покупки — это массив номеров продуктов).

Например:

CATALOGUE_NUMBER, NAME
518, "Toilet Paper"
388, "Candy Bar"
263, "Carrots"

И, для клиентов:

NAME, PURCHASES
"Jack", [518, 388]
"John", [263]
"Bill", [263, 518]

Учитывая отношение «многие к одному» (т. е. клиенты покупают много товаров), могу ли я использовать Kibana для просмотра графика, связывающего покупки с конкретными клиентами, или это выходит за рамки?

Моя конечная цель — получить график, показывающий product и customer в виде вершин и ребер, показывающих, какие продукты покупает каждый покупатель. Я очень смущен тем, способен ли Elasticsearch, или мне следует перейти на базу данных с чистым графом, такую ​​​​как Neo4J и Elasticsearch, только для поиска.


person John Crawley    schedule 11.08.2017    source источник


Ответы (1)


Функция Graph может отображать эти соединения, если они имеют общее имя поля — уникальный идентификатор узла — это имя поля и термин. Термины могут находиться в разных индексах, но пока они имеют общее имя поля, они рассматриваются как один и тот же узел. Я не уверен, какую бизнес-проблему вы пытаетесь решить (рекомендации? Мошенничество?), но в зависимости от того, чего вы пытаетесь достичь, вы можете моделировать вещи по-разному. Если вас интересуют рекомендации и люди, которые купили X, а также купили Y, то люди вряд ли будут интересными узлами для построения графика, и вы можете просто изучить поле «покупки», которое значительно вытянет, какие продукты сосуществовать. Для более подробных «криминалистических» приложений вам может понадобиться просто иметь ссылки «человек-> продукт» и не иметь ссылок «продукт-> продукт», и в этом случае вы будете вынуждены создавать более классические «краевые» документы только с двумя узлами — идентификатор человека и идентификатор продукта.

person MarkH    schedule 14.08.2017