Шина не выполняет поиск по частичному ключевому слову

Как использовать подстановочные знаки в запросах шин. временно я использую * в самом поисковом запросе, но это увеличивает время его выполнения. Есть ли другой способ?? я новичок и вообще не использую методы json для настройки моего elasticsearch.

вот мой код.

модели/movie.rb

class Movie < ActiveRecord::Base

    include Tire::Model::Search
    include Tire::Model::Callbacks
    mapping do
        indexes :title,boost: 10
        indexes :year
        indexes :author
    end
    def self.search(params)
        #binding.pry
        tire.search(load: true) do |s|
            s.query {string "*#{params[:query]}*"} if params[:query].present?
            s.filter :range,year: {lte: 2004}
        end
    end
end

контроллер/search_controller.rb

class SearchController < ApplicationController
  def index
    if(params[:query]).present?
    @results=Movie.search(params)
    else
    @results=[]
    end
  end
end

вид/index.html.erb

<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 %>
    <%= fetchresults.author %><br/>
    <% end %>
    <% end %>

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

Спасибо.


person NameNotFoundException    schedule 23.01.2014    source источник


Ответы (1)


Вы можете использовать «нравится» следующим образом:

давайте предположим, что ваша таблица movie имеет атрибут с именем name

@results=Movie.where("название похоже на ?", "арис")

person Walid Da.    schedule 23.01.2014
comment
Привет, Душа, я спрашиваю конкретно о шинах, а не о обычных рельсах. - person NameNotFoundException; 23.01.2014