2015-10-14 84 views
2

我正在使用Neo4j.rb和searchkick在rails應用程序上進行ruby操作。Searchkick搜索功能不返回任何結果

我有下面的類

class NeoUser 
    include Neo4j::ActiveNode 

    searchkick 

    property :first_name, type: String 
    property :last_name, type: String 
    property :email, type: String 

    has_many :out, :neo_users, rel_class: Following 

end 

在軌控制檯我做的:

NeoUser.reindex 

然後:

result = NeoUser.search "*" 

我得到一個空數組回:即結果。尺寸給我0

我有在本地主機上運行我的Neo4j數據庫中的數據:7000

我有我的elasticsearch服務器並在本地主機上運行:9200

NeoUser.find_by()不給我正確的結果,所以我無法找出searchkick搜索功能失敗的原因。

任何想法?

編輯:

NeoUser.reindex的輸出:

CYPHER 36ms MATCH (n:`NeoUser`) RETURN n ORDER BY n.uuid LIMIT {limit_1000} | {:limit_1000=>1000} 
=> true 

VERSIONS

Neo4j的(5.2.9)

Neo4j的核(5.1.6)

elasticsearch(1.0.13)

elasticsearch-API(1.0.13)

elasticsearch運輸(1.0.13)

searchkick(0.9.1)

它是否有事情請問我在我的ubuntu機器上安裝了elasticsearch版本1.7.2?

編輯2:

我看到,當我使用控制檯創建數據,搜索功能是能夠返回的數據。

所以我想searchkick無法訪問我的本地主機上運行的原始neo4j數據庫:9200。

但NeoUser.all確實會返回我所有的數據節點,那麼如何告訴searchkick使用特定的數據庫,還是存在其他一些問題?

+0

Hrmmm,也許...我使用的是我通過Homebrew安裝的elasticsearch 1.6.0。去看看我是否可以更新... –

+0

剛剛更新到1.7.2,沒有任何問題...你可能會嘗試使用它與ActiveRecord,看看它是否與Searchkick或與neo4j.rb的問題? –

回答

0

這真的很奇怪。我試圖在本地複製,但它爲我工作。你有什麼版本的neo4j/neo4j-core/searchkick

一個建議是,你可以嘗試把你的searchkick行放在屬性的下面,以防需要看到它們進行搜索。

另外,當你做什麼NeoUser.reindex時,你會看到什麼樣的輸出?你有多少個NeoUser節點?

+0

我編輯了這個問題,並且NeoUser.reindex沒有顯示出我的節點數量(這是18的方式(現在只是測試))。 –

+0

Gotcha。這對我來說看起來很好。我只是想確保elasticsearch在gem中調用的'find_in_batches'正在工作。 –

+0

它與ActiveRecord sqlite工作正常,所以我想問題是與neo4j.rb –