Graph 是否可以在Neo4J'的Where子句中引用自定义代码;s密码查询语言?

Graph 是否可以在Neo4J'的Where子句中引用自定义代码;s密码查询语言?,graph,nosql,neo4j,Graph,Nosql,Neo4j,是否可以使用Neo4J的密码查询语言(或其他声明性语言),但仍然引用自定义代码片段(例如,基于ElasticSearch/Lucene搜索的结果执行自定义WHERE子句) 如果其他GraphDB有支持此功能的声明性语言,请开枪。我和Neo4J没有任何关系 背景: 我正在研究是否将Neo4J包括在我当前的堆栈中,它在后端已经由ElasticSearch、MongoDB和Redis组成 特别是由于Redis的快速集合交集功能,我可能会创建一些粗糙的图形,比如查询。(尽管可能没有图形B表现得那么好)。

是否可以使用Neo4J的密码查询语言(或其他声明性语言),但仍然引用自定义代码片段(例如,基于ElasticSearch/Lucene搜索的结果执行自定义WHERE子句)

如果其他GraphDB有支持此功能的声明性语言,请开枪。我和Neo4J没有任何关系

背景:

我正在研究是否将Neo4J包括在我当前的堆栈中,它在后端已经由ElasticSearch、MongoDB和Redis组成

特别是由于Redis的快速集合交集功能,我可能会创建一些粗糙的图形,比如查询。(尽管可能没有图形B表现得那么好)。我在定义DSL方面还有很长的路要走,需要支持的查询类型

然而,我正在设计一个CMS,所以contenttypes,以及这些contenttypes之间的关系,我想用一个图来建模,这些关系是事先不知道的

因此,理想的情况是,填充所需的Redis集合(以Mongo为源)以支持所有基于ContentType及其关系的查询,而这些ContentType及其关系在设计时是未知的,至少可以说是混乱的。希望你还在跟踪


这让我得出结论,可能需要另一种解决方案,这就是为什么我要特别关注GraphDb'd和Neo4J(如果其他人可能更适合我的用例,请进行拍摄)

如果将内容类型建模为节点,则不需要事先了解它们

javascript中的用户定义函数计划在今年晚些时候用于cypher

不过,您可以使用gremlin之类的语言在groovy中声明函数

您可以将节点id存储在redis中,然后将redis返回的id数组传递给cypher查询进行进一步处理

start n=node({ids}) 
match n-[:HAS_TYPE]->content_type<-[:HAS_TYPE]-other_content
return content_type, count(*)
order by count(*) desc
limit 10

parameters: {"ids": [1,2,3,5]}
start n=node({ids})

匹配n-[:HAS_TYPE]->content_typeContent(在contenttype实例中)将被建模为节点。例如:一个特定的blogpost将是contenttype“blogpost”的节点。你是说:“如果你把内容类型建模为节点,你不需要事先知道它们。”你是说在Node4J中,对吗?如果是这样的话,这就是为什么我想使用Neo4j。区别在于将内容作为节点而不是如上所述的内容类型。顺便问一下:这个项目是用Javascript测试Gremlin,还是我可以关注的Gremlin项目中有一个适当的问题?我认为这个插件还没有进一步开发。但如果它适合你的需要,你可以去拿。