【问题标题】:Ransack search: one input field for two fields with relevanceRansack 搜索:一个输入字段对应两个具有相关性的字段
【发布时间】:2015-04-13 15:09:05
【问题描述】:

我有这段代码

<%= 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 应用程序中。它运行完美,它在我的模型(地点)的“名称”和“描述”字段中搜索。

问题是:我可以用 Ransack 定义搜索中的某种相关性吗?也就是说,结果搜索数组自带了“name”属性匹配参数的模型,后面是描述?

还是使用其他搜索模式/方法更好,例如使用弹性搜索?

【问题讨论】:

    标签: ruby-on-rails ransack


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 这是我“害怕”的事情。我选择 Ransack 是因为它不依赖其他应用程序,而且我正在使用的应用程序不需要强大的搜索引擎。但它已经成长,我知道搜索引擎需要的一些东西需要相关性(可能还有语音搜索)。你知道是否有某种免费的“SOLR”可以服务吗?谢谢!
    • 谢谢@OhHendrie 我切换到太阳黑子,现在一切正常:-)
    • 好东西。我将编辑答案以包括太阳黑子:)
    猜你喜欢
    • 2013-03-02
    • 2012-10-29
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    相关资源
    最近更新 更多