gpt4 book ai didi

neo4j - 通过减去索引返回的节点来过滤neo4j节点

转载 作者:行者123 更新时间:2023-12-04 04:52:50 24 4
gpt4 key购买 nike

我的节点有一个数组属性 category_ids包含整数。

我可以查询 category_ids 的节点不匹配列表 [1,2,3] 中的任何内容:

START node(*)
WHERE NOT(ANY(x in node.category_ids WHERE x IN [1,2,3]))
RETURN node;

我可以使用索引(我称之为 nodes_categories,它是一个标准的精确 lucene 索引)从我想过滤掉的节点开始:
START excluded=node:nodes_categories("category_ids:(1 2 3)")
RETURN excluded;

但是我如何使用我的索引来获取我想要的节点? IE 返回所有节点减去我的索引命中返回的节点?这是我的开始:
START node=node(*), excluded=node:nodes_categories("category_ids:(1 2 3)")
???
RETURN node;

编辑:neo4j 版本是 1.9.M02

最佳答案

天真的方式(更新):

START node=node(*), excluded=node:nodes_categories("category_ids:(1 2 3)")
WITH collect(excluded) as excluded, node
WHERE not node in(excluded)
RETURN distinct node;

更好的方法是弄清楚如何仅查询所需节点的索引。不过,我不确定是否有办法在 lucene 语法中做到这一点。也许是这样的:
START node=node:nodes_categories('category_ids:(* NOT 1 NOT 2 NOT 3)')
return node;

关于neo4j - 通过减去索引返回的节点来过滤neo4j节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17178119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com