有没有办法在Elasticsearch中搜索时关闭评分,以提高性能?

8xiog9wr  于 2023-08-03  发布在  ElasticSearch
关注(0)|答案(2)|浏览(287)

我在Elasticsearch 7.1索引中有超过3300万条记录,当我查询它时,我将结果大小限制为20。然而,ES仍然在内部对记录进行评分。但这对我来说并不重要,事实上,我想要任何20个结果。所以,例如我不在乎一些结果是否更相关。
我的问题是,有没有办法关闭这种行为,如果有,它会提高性能吗?

acruukt9

acruukt91#

您可以使用_doc作为排序字段。这将使ES返回按插入顺序排序的字段,因此它不会进行评分。
以下是论坛上的一个帖子,解释了更多:https://discuss.elastic.co/t/most-efficient-way-to-query-without-a-score/57457/4

wko9yo5t

wko9yo5t2#

从Elasticsearch文档的Sort search results部分(从8.8开始):
_doc除了是最有效的排序顺序之外,没有真实的的用例。因此,如果您不关心文档返回的顺序,那么您应该按_doc排序。这在滚动时尤其有用。

GET /myindex/_search
{
  "size": 1000,
  "track_total_hits": false,
  "query": {...},
  "sort": ["_doc"]   # <------- THIS.
}

字符串
您应该在结果中看到max_score_score字段为null

相关问题