在pg_search和Rails 3.2.3 Multisearch基本设置(Basic Setup

2019-07-29 09:14发布

这是我在这里的第一个问题,潜伏和吸收的许多个月。 所以我希望我这样做正确。

我一直在试图让pg_search的学习从pg_search_scope功能后,我的Rails 3.2.3的工作应用程序中的multisearch功能这Railscast 。 我相信pg_search文档假定读者已经Rails的更好的工作经验比我多。 我只是一直没能实现从我发现到获得使用multisearch工作的应用程序资源的跳跃。 任何帮助将非常感激。 这里是我的设置:

配置/初始化/ pg_search.rb

PgSearch.multisearch_options = {
  :using => {
    :tsearch => {
      :dictionary => "english"
    },
    :trigram => {}
  },
  :ignoring => :accents
}

在查看搜索表单

<%= form_tag articles_path, method: :get do %>
    <%= text_field_tag :query, params[:query], :class => "search-box" %>
    <%= submit_tag "Search This Site", name: nil, :class => "btn btn-search" %>
<% end %>

article.rb

include PgSearch
multisearchable :against => [:title, :content]

def self.search(query)
  if query.present?
    search(query)
  else
    scoped
  end
end

articles_controller.rb

def index
  @articles = PgSearch.multisearch(params[:query])

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @articles }
  end
end

已知的字词进行搜索时,我没有得到任何搜索结果。 我究竟做错了什么?

Answer 1:

看起来就像是用我的错误@articles变量在我的控制器,而不是明确定义@pg_search_documents ,这是我用在我看来,(我完全忘了张贴)的内容。 出于某种原因,我认为使用@articles = PgSearch.multisearch(params[:query])在我的控制器将通过pg_search魔力酱追加搜索结果'@pg_search_documents'。



文章来源: Basic Setup for Multisearch in pg_search and Rails 3.2.3