【问题标题】:ElasticSearch Range Aggregation no output results with no errorElasticSearch Range Aggregation 无输出结果且无错误
【发布时间】:2018-05-14 01:14:06
【问题描述】:

您好,我在使用 rails Elascticsearch 范围聚合时遇到了这个问题,这似乎是正确的,因为没有错误输出,但同样它也没有聚合。

这是我的控制器

def results
    min_price = params[:min_price] if params[:min_price].present?
    max_price = params[:max_price] if params[:max_price].present?

    price_ranges = [{to: max_price}, {from: min_price, to: max_price}, {from: min_price}]
    @results = Item.search(params[:q], aggs: {item_final_price: {ranges: price_ranges}}, page: params[:page], per_page: 10) if params[:q].present?
end

还有我的模特

class Item < ApplicationRecord

include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
# Item.import

searchkick callbacks: :async, highlight: [:item_name]



   def search_data
        {
            item_name: item_name,
            item_details: item_details,
            item_final_price: item_final_price,
            item_av_rating: item_av_rating
        }
    end
end

我的看法

<%= form_tag results_path, method: :get, enforce_utf8: false, id: "q_filter" do %>
<section class="widget widget-categories">
    <%= hidden_field_tag :q, params[:q] %>
    <h3 class="widget-title">Price Range</h3>
    <div class="form-group">
        <label>Price Between</label>
        <%= number_field_tag :min_price, params[:min_price], class: "form-control form-control-sm", placeholder: "Min Price" %>
    </div>
    <div class="form-group">
        <label>And</label>
        <%= number_field_tag :max_price, params[:max_price], class: "form-control form-control-sm", placeholder: "Max Price" %>
    </div>
    <%= button_tag(type: "submit", name: nil, class: "btn btn-outline-primary btn-sm btn-block") do %>
        Filter Search
    <% end %>
</section>
<% @results.each do |item| %>
   <%= item.item_name %>
<% end %>

【问题讨论】:

标签: ruby-on-rails ruby elasticsearch searchkick


【解决方案1】:

尝试在您的视图中定位它

@results.response["aggregations"]["item_final_price"]["buckets"]

如果您在开发中运行,您可以抛出binding.pry 并查看结果键是什么吗?如果查询返回结果,数据应该在那里。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-04-21
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多