2015-10-14 5 views
2

Я использую Neo4j.rb и поиск по рубину на приложении rails.Функция поиска 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 

ИСПОЛНЕНИЯ

Neo4j (5.2.9)

Neo4j-сердечник (5.1.6)

elasticsearch (1.0.13)

elasticsearch-апи (1.0.13)

elasticsearch-транспорт (1.0.13)

searchkick (0.9.1)

ли он получил что-то сделайте с тем, что я установил elasticsearch версии 1.7.2 на моем компьютере ubuntu?

EDIT 2:

Я видел, что, когда я создания данных с помощью консоли, функция поиска может возвращать данные.

Итак, я думаю, что поисковый запрос не может получить доступ к моей исходной базе данных neo4j, работающей на моем localhost: 9200.

но NeoUser.all действительно возвращает все мои узлы данных, так как я могу сказать, что поисковая система использует эту конкретную базу данных, или есть какая-то другая проблема?

+0

Hrmmm, может быть ... Я использую elasticsearch 1.6.0, который я установил через Homebrew. Go to see, могу ли я обновить ... –

+0

Просто обновлено до 1.7.2 и не имеет проблем ... Не могли бы вы попробовать использовать его с ActiveRecord, чтобы узнать, есть ли проблема с поисковым профилем или с neo4j.rb? –

ответ

0

Это действительно странно. Я пытаюсь воспроизвести локально, но он работает для меня. Каковы ваши версии neo4j/neo4j-core/searchkick?

Одно из предложений заключается в том, что вы можете попробовать поставить свою линию searchkick под недвижимостью на случай, если она должна их увидеть.

Кроме того, какой вид вы видите, когда вы делаете NeoUser.reindex? Сколько у вас NeoUser узлов?

+0

Я отредактировал вопрос, и NeoUser.reindex не показывает мне количество узлов (кстати, это 18 (просто тестирование прямо сейчас)). –

+0

Gotcha. Это выглядит хорошо для меня. Я просто хотел убедиться, что поиск 'find_in_batches', который искали в камне elasticsearch, работал. –

+0

Он отлично работает с sqlite ActiveRecord, поэтому я думаю, проблема связана с neo4j.rb –