我有他們所屬的users
和groups
。 我有一個指數n:集團(名稱)密碼2.0:使用基於標籤的索引來搜索一組節點
我想搜索所有用戶都屬於一套班子:「GR1」,「GR2」,「GR3」]
哪些其他羣體,他們屬於。
所以我有以下查詢: 查詢:
MATCH (gr:Group) <--(us:User)--(gr2:Group)
WHERE gr.name in ["gr1","gr2"]
return distinct gr2
這裏的事情,是我認爲因爲查詢是減緩暗號不使用索引。
我有2k節點,50k的關係。 以下查詢花費700毫秒之間200到(取決於高速緩存):
MATCH (gr:Group) <--(us:User)--(gr2:Group)
WHERE gr.name = "gr1"
return distinct gr2
然而,以下查詢,2至6秒之間取!
MATCH (gr:Group) <--(us:User)--(gr2:Group)
WHERE gr.name in ["gr1"]
return distinct gr2
當我試圖做的事:
MATCH (gr:Group) <--(us:User)--(gr2:Group)
using index gr:Group(name)
WHERE gr.name in ["gr1"]
return distinct gr2
我得到以下錯誤:
Cannot use index hint in this context. The label and property comparison must be specified on a non-optional node
Label: `Group`
Property name: `name`
(以 「=」,而不是 「中」 我沒有得到任何錯誤)
我正在使用neo4j enterprise 2.0.1。測試結果來自neo4j瀏覽器。
'IN'尚不支持索引查找上一個標籤,遺憾的是性能。 –