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 にその特定のデータベースを使用するように指示するにはどうすればよいですか、それとも他の問題がありますか?