簡體   English   中英

如何在Cypher中使用關系索引

[英]How to use relationship index in Cypher

我正在使用neo4j 2.1.4。 我有節點-POINT和關系-ROAD我有ROAD屬性的索引-OBJ_COD

:schema ls -l :ROAD

Indexes
  ON :ROAD(OBJ_COD) ONLINE  
  ON :ROAD(ID)      ONLINE  

No constraints

我想通過OBJ_COD值搜索ROAD,但是密碼不使用索引來查找關系。

neo4j-sh (?)$ profile MATCH (a)-[r:`ROAD` {ID:333275}]-(b:`POINT`) RETURN r LIMIT 1; 

ColumnFilter
   |
  +TraversalMatcher

+------------------+------+---------+-------------+----------------+
|         Operator | Rows |  DbHits | Identifiers |          Other |
+------------------+------+---------+-------------+----------------+
|     ColumnFilter |    2 |       0 |             | keep columns r |
| TraversalMatcher |    2 | 2265843 |             |        a, r, a |
+------------------+------+---------+-------------+----------------+

如何強制密碼使用現有索引來搜索單個關系?

模式索引僅在節點上可用。 對關系建立索引的需求幾乎總是在您的圖形數據建模中暴露出一個問題。 通常,您使用索引來查找圖形遍歷的起點。 良好的建模實踐是,域中的任何thing無論是thing還是entity都應該是節點,並且這種關系會將您的things置於語義上下文中。 如果按照這個和您的查詢在開始something就沒有必要建立索引關系。

但是,在少數情況下,關系索引可能是一個有效的選擇。 在這種情況下,您需要回退以將舊索引用於關系。 查看有關此內容的詳細文檔 ,以了解它們如何工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM