2015-09-08 100 views
1

我使用neo 2.2.2,並且我正在使用正則表達式搜索在名稱屬性中查找超過600k個節點中的字符串。Neo4j快速查找許多節點屬性中的字符串

每個節點的結構至少有以下兩個屬性。

{ 
    name: 'some string of text', 
    sid: 12345 
} 

我已經創建了name索引和sid另一個指標。在sid上查找速度非常快。搜索[使用正則表達式]非常緩慢。目前我正在搜索一個前後*的字符串。

neo可以用非常快的速度在屬性中搜索字符串,可以做些什麼?

如果做一些新中特別不理想,我可以在理論上起立一些輔助算法/服務從Neo4j的獨立,搜索名稱屬性中的字符串值,然後給我sid,然後用於查找up neo內的節點。

請幫我用neo4j快速搜索字符串。 :)

回答

1

您可以使用舊式全文索引來加速您的搜索。 This blog告訴你如何。

1

一般來說,正則表達式非常昂貴。從我的角度來看,你應該找到另一個解決方案。

請您介紹一下您的使用案例以及您爲什麼要使用正則表達式的更多信息?

您已經建議的一種解決方案。以另一種格式(或數據庫)存儲SID和名稱,它比Neo4j具有更好的正則表達式搜索性能。

或者對名稱屬性內容進行一些分析,並根據該內容以圖形的形式創建內容表示。

例如
*爲節點的字母名稱屬性計數
*節點啓動信
*分割名稱屬性設置爲多個屬性
*等..

+0

我不想使用正則表達式,不一定。我只是使用它,因爲我找不到一種不同的方式來搜索屬性中的子字符串。 – Kristian

相關問題