Краткое описание проблемы
Я попытался воссоздать свои функции и графики в neo4j / py2neo, используя те же файлы CSV, но без уникальных идентификаторов в файлах CSV.
Однако, когда я пытаюсь вызвать функцию, которую я написал в py2neo, чтобы вернуть рекомендованные ключевые слова, функция возвращает пустой список.Тот же самый зашифрованный запрос, который использует py2neo, дает мне правильные рекомендации, когда я помещаю его в браузер.
//Jaccard Similarity keyword recommendation
MATCH (search_query:Title)-[:HAS_KEYWORDS]->(k:Keyword)
WITH {item:id(search_query), categories: collect(id(k))} as userData
WITH collect(userData) as data
CALL algo.similarity.jaccard(data, {topK: 1, similarityCutoff: 0.1, write:true})
YIELD nodes, similarityPairs, write, writeRelationshipType, writeProperty, min, max, mean, stdDev, p25, p50, p75, p90, p95, p99, p999, p100
RETURN nodes, similarityPairs, write, writeRelationshipType, writeProperty, min, max, mean, p95
//Return similar keywords
MATCH (p:Title)-[:SIMILAR]->(other),
(other)-[:HAS_KEYWORDS]->(keyword)
WHERE not((p)-[:HAS_KEYWORDS]->(keyword)) and p.title contains "aaa"
RETURN keyword AS keywords
Я получаю ожидаемые результаты с этим шифровальным кодом при вводе его в браузер, но я заметил, чтопоявляется предупреждение, когда я помещаю запрос шифра, который ищет [: SIMILAR]:
Индекс не может эффективно выполнить подстановочный запрос
Если выполнение этого оператора с использованием CONTAINS
не делает 'Чтобы оправдать ваши ожидания, ознакомьтесь с альтернативными поставщиками индекса, см. документацию по настройке индекса.(индекс: индекс на: Заголовок (заголовок))
Моя функция py2neo:
def jacc_kw_rec(search):
q_r = []
query2 = "MATCH (p:Title)-[:SIMILAR]->(other), (other)-[:HAS_KEYWORDS]->(keyword) WHERE not((p)-[:HAS_KEYWORDS]->(keyword)) and p.Title contains \"{}\"".format(search)+ " RETURN keyword AS keywords LIMIT 3"
result = graph.run(query2).data()
for r in result:
r_j = json.dumps(r)
loaded_r = json.loads(r_j)
kw_ex = loaded_r['keywords']['Keyword']
q_r.append(kw_ex)
return q_r
Когда я проверял старый код, функциявернуть список рекомендуемых ключевых слов, таких как ['aaa', 'bbb', 'ccc']
Обновление: после тестирования моей функции на моем старом коде он по-прежнему возвращается с пустым списком.graph.run (query2) .data () пуст.
Я хотел бы знать:
- Почему мой graph.run (query2) .data ничего не возвращает, пока в браузере есть результаты.
Большое спасибо,
Эрик