【问题标题】:How do I ask Tire to return only if score more than 1 for elasticsearch仅当弹性搜索的得分超过 1 时,我如何要求轮胎返回
【发布时间】:2013-03-03 13:05:04
【问题描述】:

我正在尝试仅返回 _score 大于 1 的文档。我不知道该怎么做。我可以获取所有返回的文档并在 ruby​​ 代码中单独再次检查,但我想这可以直接从 elasticsearch 完成。

这是我现在的查询。

tag_results = Tire.search $index_elasticsearch do
            query do
                boolean do
                    should { fuzzy(:tags, query, {:min_similarity => 0.85}) }
                    should { string "description:#{query}" }
                    should { string "description1:#{query}" }
                end
            end
        end

提前致谢!

【问题讨论】:

    标签: ruby full-text-search elasticsearch tire


    【解决方案1】:

    您可以在搜索中使用min_score 参数来指定要被接受的结果必须满足的最低分数。

    但在实践中,分数会有所不同。你不会得到一致的结果。更好的是使查询的要求足够高,这样它们就不会包含仅有轻微相关的结果。

    例如,看看在boolmatch 查询中使用minmum_should_match 参数。它可以设置为例如"60%"

    【讨论】:

    • DrTech:但是在调用 Tire 时,我该如何在 Ruby 代码中执行此操作?
    【解决方案2】:

    所以我发现有一种方法可以将 min_score 传递给 Tire。

    IE。如果您只想要分数 > 1 的结果

    Tire.search $index_elasticsearch do
       min_score 1
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多