ruby-on-rails - 如何使用 elasticsearch-rails gem 过滤查询?

标签 ruby-on-rails ruby elasticsearch elasticsearch-rails

我有一个 Piece 模型,其 bool 属性为 published。

我希望搜索结果只包含已发布的 Pieces:true。

我对 PiecesController 的索引操作是:

def index
    @list = params[:list]
    @sort = params[:sort]
    if params[:q]
      @pieces = Piece.search(params[:q]).records
    else
      @pieces = Piece.all_in_category(@list, @sort)
    end
end

通过四处搜索,我似乎应该覆盖 Piece Controller 中的搜索方法,但我不确定执行此操作以维护当前搜索方法功能的正确方法。

使用 elasticsearch-rails gem 过滤 elasticsearch 结果的最佳方法是什么?

最佳答案

尝试这种格式:

Elasticsearch v2.4

@customers = Customer.__elasticsearch__.search(
        query: { 
          bool: {
            filter: {
              term: {"account_id" => current_account.id.to_s}
            },
            must: {
              query_string: {
                query: "*#{params[:q]}*"
              }
            }
          },
        },
        size: options[:per_page],
        from: options[:from]
      ).records

关于ruby-on-rails - 如何使用 elasticsearch-rails gem 过滤查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142557/

相关文章:

ruby-on-rails - Ruby on Rails 表单提交错误和成功消息

ruby-on-rails - 在 rails 中将字符串转换为数组

ruby-on-rails - rails structure.sql 和 schema.rb 有什么区别

ruby - Ruby 的 Time 类可以表示的时间范围是多少?

elasticsearch - 在 Elasticsearch 中删除类型的文档

elasticsearch - Elasticsearch 不同值

ruby-on-rails - Rails 查询有问题,列名不明确

ruby-on-rails - 在哪里放置 Rails Controller 的 Ruby 辅助方法?

ruby - 安装 RVM : "Requirements installation failed with status: 1."

maven - elasticsearch的源代码