0

我正在使用 elasticsearch 进行 syslog 索引,并且想从 rails 应用程序查询 elasticsearch,所以我正在尝试使用轮胎。

如果我从搜索框中搜索 asa,以下是结果。

[REQUEST FAILED] curl -X GET 'http://localhost:9200/asa/_search?pretty' -d '{}'

注意 asa 在索引位置,如果我将它从 asa 更改为 _all,我会进行搜索。

在 index.html.erb 我有这个搜索框

<%= form_tag 'csdashboard', :method => :get do %>
  <%= text_field_tag :query, params[:query] %>
  <%= submit_tag 'Search logs..', name: nil %>
<% end %>

这是我的控制器。

class CsdashboardController < ApplicationController
  def index
    if params[:query].present?
      @esearch = Tire.search(params[:query])
      render 'layouts/search'
    else
      render 'layouts/index'
    end
  end
end

这是我的 search.html.erb

  <%= @esearch.results.to_json do %>
  <% end %>
4

1 回答 1

0

提出这样的问题通常会得到如下答案:RTFM!

如果您查看轮胎的文档(现在退休),则有以下示例:

s = Tire.search 'articles' do
  query do
    string 'title:T*'
  end

  filter :terms, :tags => ['ruby']

  sort { by :title, 'desc' }

  facet 'global-tags', :global => true do
    terms :tags
  end

  facet 'current-tags' do
    terms :tags
  end
end

你注意到什么了吗?正确,传递给的参数search是索引名称。您提供的代码正是这样做的,它使用参数来设置索引名称。

于 2013-10-25T12:47:34.867 回答