Что является альтернативой для имитации функции «создать представление» в neo4j?

1

У меня есть набор данных размером около 0,5 миллиона, встроенный в Java-приложение. Я пытаюсь выполнить что-то вроде:

1 - Выполните дружеские друзья, такие как cypher query ("MATCH (n)-[r:rel*3]->(m) return n,r,m") 2 - Выполните запросы на эти подмножества

Идея подобна представлению create в SQL. Я прочитал это сообщение в группе google, это похоже на мою озабоченность.

https://groups.google.com/forum/#!searchin/neo4j/sql$20view/neo4j/kFa8_ZJYzEM/0KuulGphrTYJ

Считаете ли вы, что наилучшим вариантом является маркировка узлов, как своего рода флаг, по первому запросу? Что касается производительности, когда я вспоминаю узлы "флаг", даже если это быстро, я повторно запускаю запрос во всем наборе данных, поэтому я думаю, что это немного утомительно. Есть ли какая-либо другая функция neo4j, которую я забываю? Благодарю.

Теги:
neo4j
cypher
create-view

1 ответ

1

Маркировка узлов каким-то флагом не кажется очень хорошим вариантом. Вам все равно придется запрашивать узлы, у которых есть специальное свойство, и в этом случае почему бы просто не повторить исходный запрос, создавший представление?

Который, кстати, должен оставаться в качестве опции - просто повторно выдавать запрос по мере необходимости. Вне рук у вас есть несколько других вариантов:

  1. В слое java реализуется обход, который инкапсулирует/возвращает то, что должно быть в представлении, а затем работать с этим.
  2. Вместо добавления свойства вы могли бы добавить метку к узлам с помощью инструкции create (вам все равно придется запрашивать узлы с меткой "view", чтобы что-либо делать с вашим "представлением")
  3. Создайте специальный индексный узел. Обозначьте это "VIEW". Затем создайте отношения из этого индексного узла ко всем узлам, которые находятся в представлении (например, VIEWNODE- [r: contains] → someObjectInView). При захвате этого узла указательного узла и пересечении только [r: contains] вы можете быстро "перекомпилировать" представление.

В конечном итоге то, что вы выбираете, зависит от типа запроса, который вы хотите сделать в "представлениях".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню