今天我开始阅读有关elasticsearch的内容,我正在尝试在我的ruby on rails应用程序中使用它。
所以我做了一些调整,就像我在例子中看到的那样:
我的模特:
class Service < ActiveRecord::Base
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
end
我的控制器:
class ServicesController < ApplicationController
(...)
# GET /services/search
def search
@services = Service.search(params[:q]).records
render action: "index"
end
(...)
end
我的观点:
(...)
<%= form_tag search_services_path, method: 'get' do %>
<%= text_field_tag :q, params[:q] %>
<%= button_tag :search %>
<% end %>
(...)
我的路线:
Newapp::Application.routes.draw do
(...)
resources :services do
collection { get :search }
end
(...)
end
但是当我找到任何东西时,我总会得到0(零)的结果。
其他人认为我试图这样做:
$ curl -XPOST 'localhost:9200/services/_search?pretty' -d '
{ "query": { "match_all": {} } }'
它返回:
{
"took" : 2396,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
我需要做些什么来对弹性搜索通过我的rails模型查找保存在我的数据库中的数据
感谢您的帮助!!
答案 0 :(得分:0)
这篇文章足以解决我所有的疑虑。
http://www.sitepoint.com/full-text-search-rails-elasticsearch/
我的问题解决了:
require 'elasticsearch/model'
在我的模型的顶部,并添加:
Article.import # for auto sync model with elastic search
在我的模型的底部。