Могу ли я посчитать отношение приоритета, если все пути на одном и том же наборе узлов -- neo4j поле с участием cypher поле с участием py2neo пол Связанный проблема

Can I count the precedence relation if all the paths on the same set of nodes


0
vote

проблема

русский

Путь представляет для пользователей истории просмотра.

Я рассматриваю, какая структура дизайна я должен взять.

Например,

красный путь означает, что пользователь просматривает

[страница A] - & gt; [страница b] - & gt; [страница b] - & gt; [страница C] - & gt; [page b] - & gt; [страница A]

синий путь означает, что пользователь просматривает

[Page C] - & GT; [Page d] - & gt; [страница A]

Если я хочу выбрать путь, чья путь просмотра Page C раньше, чем Page A ,

Ответ должен быть <сильный> синий путь

Как я могу разработать запрос в Cyper Query ,

Какой дизайн подходит для моего случая?

Спасибо.

Дизайн 1 (каждый путь разделяет одни и те же узлы)

Дизайн 2 (каждый путь должен иметь свои собственные узлы.)

Обновление

Я пытался применить ваш запрос в мою модель,

Я хочу знать, если узел 5231 равен <сильным> узлом 7222

Но это не удалось получить выход.

 <код> MATCH p=(x)-[*0..]->(y {code: '5231'}) WHERE NOT ()-->(x) RETURN p ORDER BY LENGTH(p) LIMIT 1;   

Данные

Модель Download

Английский оригинал

The path is representing for users' browse history.

I'm considering which design structure should I take.

For example,

the red path means the user has browsed

[page A]-> [page B]-> [page B]-> [page C]-> [page B]-> [page A]

the blue path means the user has browsed

[page C]-> [page D]-> [page A]

If I want to select whose browse path is page C earlier than page A ,

The answer should be blue path

How could I design the query in cypher query ,

Which design is suitable for my case?

Thank you.

design 1 (each path share the same nodes)

design 2 (each path should has its own nodes.)

UPDATE

I tried to apply your query in my model,

I want to know if the node 5231 is before than node 7222

But it couldn't get any output.

MATCH p=(x)-[*0..]->(y {code: '5231'}) WHERE NOT ()-->(x) RETURN p ORDER BY LENGTH(p) LIMIT 1; 

Data

model data download

</div
        

Список ответов

0
 
vote

Создание непересекающихся подграфов для каждого пути - это расточна, и, вероятно, не будет легче решить вашу корпус использования.

Вот запрос (который работает с унифицированным графом), который находит путь (или один из них, если есть галстук), в котором <код> C появляется самым ранним.

 <код> MATCH p=(x)-[*0..]->(y {id: 'C'}) WHERE NOT ()-->(x) RETURN p ORDER BY LENGTH(p) LIMIT 1;   

Этот конкретный запрос заканчивает пути, которые он находит на <код> C узла, и не ботится включать в себя любые последующие узлы (могут быть много ветвей, и неясно, какая ветвь вы захотите Следуйте).

 

Creating disjoint subgraphs for each path is wasteful, and probably would not make it any easier to solve your use case.

Here is a query (that works with a unified graph) that finds the path (or one of them, if there is a tie) in which C appears the earliest.

MATCH p=(x)-[*0..]->(y {id: 'C'}) WHERE NOT ()-->(x) RETURN p ORDER BY LENGTH(p) LIMIT 1; 

This particular query ends the paths it finds at the C node, and does not bother to included any subsequent nodes (there could be many branches, and it is not clear which branch you would want to follow).

</div
 
 
   
   

Связанный проблема

4  Neo4j Cypher - импортировать CSV и добавить отношения между узлами на основе значений CSV  ( Neo4j cypher import csv and add relationships between nodes based on the csv v ) 
Возможно ли в Capher создавать разные отношения между узлами на основе значения CSV с использованием функции импорта. , например: Для заданных данных CSV <...

0  Передача данных из mysql в neo4j  ( Transferring data from mysql to neo4j ) 
Мы находимся в процессе миграции нашего приложения Django на основе MySQL на Neo4J. В MySQL у нас есть таблица поставщиков и таблица рефералов. Таблица рефера...

33  Забыли пароль Neo4j Server  ( Forgot neo4j server password ) 
Потому что Этот вопрос никогда не отвечал, я был Надеясь, что кто-то может помочь мне сбросить пароль для подключения к моему паролю Neo4J (в Localhost: 747...

1  Neoj4 родной водитель против отдыха  ( Neoj4 native driver vs rest ) 
В настоящее время я работаю с Neo4j с библиотекой Neo4JClient для .NET ( https://github.com / Readify / neo4jclient / wiki ) Это, однако, это библиотека, ко...

4  Neo4j Python Bolt Driver: Как преобразовать результат к JSON?  ( Neo4j python bolt driver how to convert the result to json ) 
Я использую драйвер болта (1.0.1) с Python. Как я могу преобразовать результат в JSON, чтобы я мог вернуть его через приложение Flask? Мне нужно преобразовать...

0  Отношения (край) в Neo4j не создается  ( Relationship edge in neo4j is not being created ) 
Так что я пытаюсь загрузить набор данных Movielens в график Neo4j. Есть три узла: пользователь, фильм и жанр и два края: has_rated и is_genre. Я успешно загру...

2  Neo4j Traversal в правильном порядке для двух разных отношений?  ( Neo4j traversal in correct order for two different relationships ) 
Я использую API Traversal Neo4J и пытаюсь пройти от «1», чтобы найти узлы «2» и «3», установленные на рисунке ниже: <код> 1-[:A]-2-[:B]-3 Однако в моем ...

2  Топологический сорт на Neo4J  ( Topological sort on neo4j ) 
У меня есть график на neo4j, и я хотел бы запустить топологическую сорт, предпочтительно без записи на самом графике (чтобы обеспечить несколько клиентов запу...

0  Создание отношений на каждом Cypher-Neo4J  ( Create relationship at for each cypher neo4j ) 
У меня есть заявление в моей бэкэнде, который стреляет запрос. Это утверждение проверяет максимальный номер слота, существующий в моей базе данных Neo4j, и вп...

8  Как установить Neo4j 2.0+ как служба Windows  ( How to install neo4j 2 0 as a windows service ) 
Я пробую сообщество Edition Beta Of Neo4j 2.0 для Windows, но я не вижу способ установить его как услугу. Единственный способ запустить Neo4j, кажется, через ...

1  Neo4j helloworld не работает  ( Neo4j helloworld is not working ) 
Я новый в Neo4J и следуя руководству HelloWorld на веб-сайте Neo4j ( http://docs.neo4j.org/chunked/mileestone/tutorials-java-embedded-hello-world.html ). Мо...

0  Neo4j: применять алгоритм сходства узла (NS) после вызова алгоритма слабо подключенного компонента (WCC)  ( Neo4j apply node similarity ns algorithm after calling weakly connected comp ) 
Я хотел бы вызвать алгоритм NS после вызова WCC. Вот что я сделал: Я создал в графике памяти: <Код> CALL gds.graph.create('my-graph','*','APPEARS_IN') Y...

0  Как изменить анализатор существующего индекса NEO4J с помощью Cypher  ( How to change analyzer of an existing neo4j index using cypher ) 
Какая команда Best Cypher для изменения анализатора существующего индекса в Neo4J? ...

2  Как представлять события сроки в Neo4J?  ( How to represent timeline events in neo4j ) 
Мне нужно создать диаграмму базы данных с событиями, которые произошли в течение определенного периода времени. Эти события произошли в определенный момент вр...

0  Neo4j Server Установка Linux AWS Centos OS - Сервисный пользователь не может найти Java  ( Neo4j server installation linux aws centos os service user cannot find java ) 
Я загрузил Neo4j Enterprise с Neo Site и не имею его до / opt Я успешно загрузил и установил java 7 Server Edition с веб-сайта Oracle. Примечание После уточ...




© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.