【发布时间】:2014-02-22 01:19:45
【问题描述】:
我对 ElasticSearch 中的限制过滤器有点不确定。我认为我没有正确理解它们。
我正在搜索健康记录信息的多个节点上的多个分片。我希望在我的查询中获得最高分的 50 个结果。
在docs 它说
限制过滤器限制要执行的文档数量(每个分片) 开。
这个SO 响应状态
You should use filters when you don't care about scoring, they are faster and cache-able.
但是,如果评分对我来说很重要,我是否应该使用限制过滤器将我的回报限制为仅前 50 名得分最高的结果?
这样的东西会更准确吗(在java中):
SearchResponse response = client.prepareSearch().setSearchType(SearchType.DFS_QUERY_THEN_FETCH).setQuery(qb).setFrom(0).setSize(50).setExplain(true).execute().actionGet();
更新 我偶然发现了这个SO 帖子,其中回复指出:
对,您应该使用过滤器来排除文档 执行查询时考虑。
好的。所以在这种情况下,也许我可以将我的问题细化为以下内容:
如何只返回得分前 50 的结果?上面的java引用是正确的解决方案吗?
【问题讨论】:
标签: elasticsearch