作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我是 Elasticsearch 的新手。我在我的系统中安装了 Elasticsearch 。在 localhost:9200 它正在显示
{
"ok" : true,
"status" : 200,
"name" : "Unseen",
"version" : {
"number" : "0.90.10",
"build_hash" : "0a5781f44876e8d1c30b6360628d59cb2a7a2bbb",
"build_timestamp" : "2014-01-10T10:18:37Z",
"build_snapshot" : false,
"lucene_version" : "4.6"
},
"tagline" : "You Know, for Search"
}
我在我的 gem 文件中包含了这两个 gem。
gem 'tire'
gem 'elasticsearch'
我有一个电影模型和一个名为 search_controller 的 Controller 。
电影.rb
class Movie < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
mapping do
indexes :title
end
def self.search(params)
binding.pry
tire.search(load: true, page: 1, per_page: 10) do
query { string params[:query]} if params[:query].present?
end
电影模型的迁移
class CreateMovies < ActiveRecord::Migration
def self.up
create_table :movies do |t|
t.string :title
t.timestamps
end
def self.down
drop_table movies
end
end
end
搜索 Controller
class SearchController < ApplicationController
def index
if(params[:query]).present?
@results=Movie.search(params)
else
@results=[]
end
end
end
view/search/index
<h1>Search#index</h1>
<p>Find me in app/views/search/index.html.erb</p>
<%= form_tag search_index_path, method: :get do %>
<p>
<%= text_field_tag :query, params[:query] %>
<%= submit_tag "Search", name: nil %>
</p>
<% end %>
<% if @results %>
<% @results.each do |fetchresults| %>
<%= fetchresults.title %>
<%= fetchresults.year %><br/>
<% end %>
<% end %>
路线.rb资源:搜索 根“搜索索引”
我知道我应该为我的记录编制索引以便在 Elasticsearch 中使用它,但不知道如何以及在何处保存这些文件,以及如何使用它们。当我尝试搜索时显示错误
404 : {"error":"IndexMissingException[[movies] missing]","status":404}
最佳答案
当我将 elasticsearch 添加到我的 Rails 应用程序时,我使用了 searchkick:
https://github.com/ankane/searchkick
它真的是用户友好且设置快速。您可以使用 rake searchkick:reindex:all
命令来索引所有数据。
关于ruby-on-rails - 如何在rails中使用elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21282004/
我是一名优秀的程序员,十分优秀!