Я совершенно новый в поиске эластичности. Я установил эластичный поиск в своей системе. на локальном хосте: 9200 он показываетКак использовать elasticsearch в рельсах
{
"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 'tire'
gem 'elasticsearch'
У меня есть модель кино & контроллер называется search_controller.
movie.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
search_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 %>
routes.rb ресурс: поиск корень 'поиск # индекс'
Я знаю, что я должен индексировать свои записи, чтобы использовать его в поиске в упругом состоянии, но не понимая, как & где сохранить эти файлы, & как их использовать. , когда я пытаюсь найти это показывает ошибку
404 : {"error":"IndexMissingException[[movies] missing]","status":404}
в киномодели, используйте Movie.import и в SearchController используйте параметры Moview.search [: query] – indb