我有一个Ruby on Rails Web应用程序,为用户提供搜索/过滤功能。基本上我正在尝试为这种应用程序编程。 http://demo.srchulo.com/jquery/jquery_facets/
但是,我使用ActiveRecord(No Elasticsearch或Solr)进行搜索。现在我已经读过Elasticsearch和Solr支持facet搜索和facet过滤。因此,我想我是否需要实现Elasticsearch或Solr以进行构面过滤,或者我可以通过简单的Javascript查询实现这一点吗?如果可能的话,我想避免使用Elasticsearch或Solr。
提前致谢!
答案 0 :(得分:0)
你在这里完全混合了所有技术。
并且您的问题的总体答案是:它取决于!
我想你需要提供a)更多的上下文信息b)找出你的需求到底需要什么。
答案 1 :(得分:0)
我写了一个gem来创建简单的基于ActiveRecord的构面搜索。
如上所述,它使用group by
和having
子句收集有关构面值的信息,并提供一个简单的API来访问构面并创建指向缩小结果的链接。
在您的视图中,您可以像任何其他ActiveRecord集合一样迭代结果
%table.table.table-condensed
%tbody
- @movies.each do |movie|
%tr
%td
%strong=movie.title
Use the search object to display further narrowing options to the user
- filter = @search.filter(:genre)
.col-md-4
.filter
.filter-title= filter.name
.filter-values
%ul.selected
- filter.selected.each do |genre|
%li= link_to genre.name, filter.remove(genre).path
%ul.selectable
- filter.facet.reject(&:selected).each do |facet_value|
- genre = facet_value.genre
%li
= link_to genre.name, filter.add(genre).path
%span.count= "(#{facet_value.count})"