簡體   English   中英

在分布式系統中使用Neo4j和Lucene

[英]Using Neo4j and Lucene in a distributed system

我正在尋找Neo4j作為簡化的文檔存儲。 文檔存儲的一個關鍵方面是搜索,我知道Neo4j包括通過Lucene提供的舊索引進行全文搜索。

我會很感興趣聽到分布式環境中Neo4j搜索功能的局限性。 是否提供分布式索引? 在什么方面不如Solr或ElasticSearch? 在必須安裝Solr之前可以帶走多遠?

-編輯-

我們正在嘗試整合兩種不同的搜索方式。 首先是標准文本內容搜索。 例如,使用Enron電子郵件,我們要搜索與“香蕉”或“去商店”相匹配的每封電子郵件,並得到相應的文檔正文。 這是人們經常轉向Solr的地方。

第二種情況更為復雜,我們在每個文檔中都添加了大量元數據。 我們可能已經確定“這些”電子郵件是深夜喝醉撥號的結果。 現在,我想搜索所有可能是深夜醉酒撥號產生的電子郵件。 對於這種元數據,我們認為圖形數據庫是有序的。

在理想的情況下,我可以使用一個平台來執行兩個查詢。 我贊賞Neo4j(也不是OrientDB,Arango等)被設計為全文搜索數據庫,但是我試圖理解其局限性。

就數量而言,我們正在大規模處理批處理式夜間更新。 數據內容繁重,一些文檔運行成數百頁的文本,但大部分都在一頁或兩頁的順序上。

Neo4j可以提供“分布式索引”,即高可用性群集可以使您的索引在多台計算機上可用,但是我很確定那不是您想要的。 與這個問題相關的是我寫的關於圖形分區的另一種答案 ,以及在多台計算機之間分配大量節點/關系需要什么。 (這不是很簡單)

Solr和Lucene做兩件事(盡管Solr建立在Lucene之上)。 我認為solr和neo4j不具有可比性,因為它們試圖做完全不同的事情。 這個站點不是關於軟件推薦的,因此除了說您應該閱讀solr和neo4j並找出所需的功能集之外,我無法告訴您應該使用什么。 據我所知,這是一個排他性的決定,因為我不知道有人將solr與neo4j集成在一起。

您的問題很難回答,建議您擴展您嘗試做的事情和嘗試過的事情,您可能會得到更好的答復。

我曾經在一個健康社交網絡上工作,我們需要某種搜索和連接搜索功能,我們首先在neo4j上進行了開發,我們對可以獲取並表達任何請求的密碼查詢語言印象深刻,但是當您將數十億個節點扔到那里時,您就會啟動為了付出代價,我們開始考慮另一個圖形數據庫,這次我們進行了大量的研究,測試,而OrientDB顯然是贏家,OrientDB具有高度的可擴展性,但問題是您必須自己編寫代碼,算法”,如果您想做一些高級的事情(這兩個節點之間的共同點是什么),否則您將擁有類似SQL的查詢語言(我不知道/記得他是否有名字),但是您可以做一些有趣的事情因此,總的來說,我肯定會繼續使用OrientDB

暫無
暫無

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

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