首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索高级搜索

弹性搜索高级搜索
EN

Stack Overflow用户
提问于 2015-06-15 16:48:34
回答 1查看 126关注 0票数 1

我找到Elasticsearch宝石并想使用它。例如,我有:

app/controller/search_controller.rb中的方法

代码语言:javascript
复制
def search
  if params[:q].nil?
    @articles = []
  else
    @articles = Article.search params[:q]
  end
end

app/views/search/search.html.erb上查看

代码语言:javascript
复制
<h1>Articles Search</h1>

<%= form_for search_path, method: :get do |f| %>
  <p>
    <%= f.label "Search for" %>
    <%= text_field_tag :q, params[:q] %>
    <%= submit_tag "Go", name: nil %>
  </p>
<% end %>

<ul>
  <% @articles.each do |article| %>
    <li>
      <h3>
        <%= link_to article.title, controller: "articles", action: "show", id: article._id%>
      </h3>
    </li>
  <% end %>
</ul>

以及config/routes.rb的搜索路线

代码语言:javascript
复制
get 'search', to: 'search#search'

我想创建高级搜索。例如,当我在搜索行中编写#cucumber时,我希望得到以下行:localhost:3000/tagged?tag=cucumber。我有必要用标签展示产品。该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-15 17:23:40

我宁愿在你的行动中这样做。

代码语言:javascript
复制
tags = params[:q].present? ? params[:q].scan(/#[^ #]+/).collect{|tag| tag.gsub(/#/, '')} : []

现在,您可以在搜索函数中使用这个标记数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30850635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档