Ransack 搜索:一个输入字段对应两个具有相关性的字段

Ransack search: one input field for two fields with relevance

我有这段代码

<%= search_form_for @search, url: "/venues/search", method: "post", id: "frm_search_venue", class: "col-md-6" do |f| %>
                <%= f.text_field :name_or_description_cont, class: "form-control" %>
<% end %>

在带有 Ransack 的 RoR 应用程序中。它工作完美,它在我的模型(场地)的 "name" 和 "description" 字段中搜索。

问题是:我可以用 Ransack 定义搜索中的某种相关性吗?换句话说,结果搜索数组带有"name"属性匹配参数的模型,后面是描述?

还是使用其他搜索更好pattern/approach,例如 Elastic 搜索?

你走在正确的轨道上 - 我会使用弹性搜索(或类似的东西)来增加这个搜索查询的相关性。

该方法可能涉及为名称和描述赋予权重(名称为 0.9 或 1.0,而描述为 0.6 或 0.5)

您可能还想看看 Solr (http://lucene.apache.org/solr/)。

有一个 Solr 版本用于 Rails 应用程序调用 Sunspot。它应该提供您正在寻找的功能。

http://www.github.com/sunspot/sunspot