Я хочу использовать ElasticSearch + Tire для поиска в MongoDB.Ruby: ElasticSearch + Ошибка шины Шины :: Поиск :: SearchRequestFailed - IndexMissingException?
Однако, я получаю следующее сообщение об ошибке при попытке выполнить поиск:
Tire :: Поиск :: SearchRequestFailed в SearchController # индекс
404 : {"error":"IndexMissingException[[events] missing]","status":404}
Из того, что я понимаю, это говорит мне о том, что индексы отсутствуют для события, хотя я сказал ему генерировать их, когда я запустил db:setup
.
Модель:
class Event
include Mongoid::Document
include Mongoid::Timestamps
include Tire::Model::Search
include Tire::Model::Callbacks
field :name, :type => String
field :description, :type => String
field :started_at => Time
field :ended_at => Time
def to_indexed_json
self.as_json
end
end
Контроллер:
def search
Event.tire.search(params[:q])
end
Любые идеи о том, как решить эту проблему, пожалуйста?
Пожалуйста, обновите модель - я не вижу никаких определений 'field' там. В общем, когда вы загружаете приложение, он должен быть создан, если он уже не существует. – karmi
@karmi: Я добавил поля к модели сейчас. – gabriel
Я понял, что проблема в том, что модель не добавлялась в индекс ElasticSearch, когда она была сохранена. Я попытался вручную добавить/импортировать его, но я не могу заставить его работать ... Любая помощь в решении этого будет очень признательна. – gabriel