Я пытаюсь разработать поисковый запрос Neo4j, чтобы найти похожие выглядящие фотографии.
У меня есть 62 узла с меткой «Сходство», которые представляют фотографии, с которыми будут сравниваться все другие узлы с меткой «Фото». Мои данные выглядят так:
(p:Photo {name: 'treehouse'})-[r:LOOKS_LIKE {weight: 0.874655}]->(l:Likeness {name: 'lighthouse'})
(p:Photo {name: 'cat'})-[r:LOOKS_LIKE {weight: 0.00454}]->(l:Likeness {name: 'lighthouse'})
(p:Photo {name: 'house'})-[r:LOOKS_LIKE {weight: 0.4768}]->(l:Likeness {name: 'lighthouse'})
etc...
Все веса отношений находятся в диапазоне от 0 до 1.
Так что пример поиска может быть:
[
{name: 'lighthouse', value: 0.856378},
{name: 'car', value: 0.17854},
{name: 'tank', value: 0.034523},
{name: 'pencil', value: 0.078902}
]
Как мне вернуться узлы в порядке сходства (расстояния от) этих узлов и весов?