1

我试图只返回_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

提前致谢!

4

2 回答 2

2

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

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

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

于 2013-03-15T10:44:19.197 回答
0

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

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

Tire.search $index_elasticsearch do
   min_score 1
end
于 2013-06-29T18:09:51.993 回答