Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轮胎不搜索部分关键字_Ruby On Rails_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Tire - Fatal编程技术网 elasticsearch,tire,Ruby On Rails,Search,elasticsearch,Tire" /> elasticsearch,tire,Ruby On Rails,Search,elasticsearch,Tire" />

Ruby on rails 轮胎不搜索部分关键字

Ruby on rails 轮胎不搜索部分关键字,ruby-on-rails,search,elasticsearch,tire,Ruby On Rails,Search,elasticsearch,Tire,如何在轮胎查询中使用通配符。 我暂时在搜索查询本身中使用*,但它增加了执行时间。 还有别的办法吗?? 我是新手&根本不使用json方法来配置我的elascticsearch 这是我的密码 模特/电影.rb class Movie < ActiveRecord::Base include Tire::Model::Search include Tire::Model::Callbacks mapping do indexes :title,boost

如何在轮胎查询中使用通配符。 我暂时在搜索查询本身中使用*,但它增加了执行时间。 还有别的办法吗?? 我是新手&根本不使用json方法来配置我的elascticsearch

这是我的密码

模特/电影.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
class电影
控制器/搜索\u controller.rb

class SearchController < ApplicationController
  def index
    if(params[:query]).present?
    @results=Movie.search(params)
    else
    @results=[]
    end
  end
end
class SearchController
view/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 %>
Search#索引
在app/views/search/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 %>


例如,我的数据库中有paris&当我搜索“aris”时,它应该在搜索结果中显示paris,默认情况下它不显示任何结果

谢谢。

您可以使用“like”,如下所示:

假设您的电影表有一个名为name的属性


@结果=Movie.where(“name like?”,“aris”)

Hey Soul,我要的是轮胎,而不是普通的rails查询。