2

ruby on rails アプリに Neo4j.rb と 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 "*"

空の配列が返されます: つまり、result.size は 0 を返します

localhost:7000 で実行されている Neo4j データベースにデータがあります

localhost:9200 で Elasticsearch サーバーを稼働させています。

NeoUser.find_by() は正しい結果を返すので、searchkick 検索機能が失敗する理由がわかりません。

何か案は?

編集 :

NeoUser.reindex の出力:

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

バージョン

neo4j (5.2.9)

neo4j-コア (5.1.6)

エラスティックサーチ (1.0.13)

エラスティックサーチ API (1.0.13)

エラスティックサーチトランスポート (1.0.13)

サーチキック (0.9.1)

私のubuntuマシンにelasticsearchバージョン1.7.2をインストールしたという事実と何か関係がありますか?

編集2:

コンソールを使用してデータを作成すると、検索機能がデータを返すことができることがわかりました。

したがって、searchkick は、localhost:9200 で実行されている元の neo4j データベースにアクセスできないと思います。

しかし、NeoUser.all はすべてのデータ ノードを返すので、searchkick にその特定のデータベースを使用するように指示するにはどうすればよいですか、それとも他の問題がありますか?

4

1 に答える 1

0

それは本当に奇妙です。ローカルで再現しようとしていますが、うまくいきます。neo4j/ neo4j-core/のバージョンは何searchkickですか?

searchkick1 つの提案は、検索するためにそれらを表示する必要がある場合に備えて、プロパティの下に行を入れてみることです。

また、実行するとどのような出力が表示されますかNeoUser.reindex? NeoUserノードはいくつありますか?

于 2015-10-14T07:26:43.603 に答える