0
我有一個問題,你能幫我嗎?如何在cypher中使用節點和關係自動索引?
在我真正的neo4j2.1.3中,有很多節點和關係。所以我必須使用自動索引來提高性能。
例如:節點自動索引的屬性關鍵字'person_name','hotel_name'。和'inTime'關係自動索引。
然後,我創建的數據:
create (:Person {person_name:'p1'})
create (:Person {person_name:'p2'})
create (:Hotel {hotel_name:'h1'})
create (:Hotel {hotel_name:'h2'})
start p=node:node_auto_index('person_name:p1'),h=node:node_auto_index('hotel_name:h1')
create (p)-[:STAY_IN {inTime:'20140520'}]->(h)
start p=node:node_auto_index('person_name:p1'),h=node:node_auto_index('hotel_name:h2')
create (p)-[:STAY_IN {inTime:'20140522'}]->(h)
start p=node:node_auto_index('person_name:p2'),h=node:node_auto_index('hotel_name:h1')
create (p)-[:STAY_IN {inTime:'20140510'}]->(h)
接下來,我鍵入此暗號:
start p=node:node_auto_index('person_name:p1'),
r=relationship:relationship_auto_index('inTime:[20140501 TO 20140530]')
match (p)-[r]-(h) return p,r,h
我只是想找回「P1」留在了關係,但暗號以上回報的關係。 p1和p2。爲什麼?
任何幫助將不勝感激。
嗨,@Stefan Armbruster,謝謝你的回覆。 你看我說了什麼。但我的情況並非如此簡單。 我試過了模式索引。但它不支持範圍查詢。它不支持模糊搜索。它只用於完全匹配。 例如:如果我已創建2索引屬性鍵 'PERSON_NAME' 和 'person_birthday': 創建索引ON:人(PERSON_NAME) 創建索引ON:人(person_birthday) 如果i型這些查詢: 匹配(對:Person)其中p.person_name ='Mike *'返回p 匹配(p:Person)其中p.person_birthday>'19800501'返回p 模式索引不起作用。 – 2014-10-10 11:01:51
讓我們回到前面的問題,在我的真實情況下,考慮這個: 如果neo4j db中有多個人員節點,並且每個節點也與其他節點有毫秒關係。所以我該怎麼做? 再次感謝您的幫助。 – 2014-10-10 11:03:09
我很確定,如果將日期保存爲整數而不是字符串,則可以使用範圍執行匹配,並使用索引。 '匹配(p:Person),其中p.person_birthday> 19800501返回p'。就模糊搜索而言,我通常推薦使用Elasticsearch。它會做得更好,讓Neo4j做到最好。 – subvertallchris 2014-10-10 13:18:49