使用Postgres& amp;轨道

时间:2016-06-01 15:45:28

标签: ruby-on-rails database postgresql faceted-search

使用Postgres作为后端并使用Ruby on Rails作为前端,实现分面搜索/过滤UI的最佳方法是什么?示例如下:

faceted filtering example

3 个答案:

答案 0 :(得分:1)

使用ThinkingSphinx或Apache Solr - 都有内置的刻面。你可以自己滚动(如另一个很好的答案所示),但我的经验表明你最好添加一个真正的搜索引擎,并利用那里的分面功能,以及其他搜索功能。我使用Solr进行所有新开发,但ThinkingSphinx通常更容易设置,并且它具有新功能(主要是连续索引),使其成为一个很好的竞争者。

答案 1 :(得分:0)

我认为Rails足够强大,可以实现如上所示的简单表单过滤器。

你只需要有一个好的数据模型,然后就可以很容易了。

示例:

E/R example

虽然您可以使用simple_form来简化表单创建,但它绝对是可选的。

答案 2 :(得分:0)

select
    (
        select json_object_agg(COALESCE(brand_id, 'null'), cnt)
        from (
            select brand_id, COUNT(*) as cnt
            from unnest(array_agg(brand_id)) as tmp(brand_id)
            group by brand_id
        ) ttt
    ),
    min(price) as price_min,
    max(price) as price_max
from product
WHERE is_visible = true