ElasticSearch Range Aggregation - нет результатов без ошибок - PullRequest
0 голосов
/ 12 мая 2018

Здравствуйте, у меня есть эта проблема с агрегациями диапазона 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 %>

1 Ответ

0 голосов
/ 13 мая 2018

Попробуйте нацелить это на ваш взгляд

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

Если вы работаете в разработке, можете ли вы выбросить binding.pry и посмотреть, каковы ключи результата?Данные должны быть там, если запрос возвращает результаты.

...