簡體   English   中英

Elastic Search 版本 7.17 Java Rest API 使用 queryBuilder 返回不正確的總元素和總頁數

[英]Elastic Search Version 7.17 Java Rest API returns incorrect totalElements and total pages using queryBuilder

我們目前正在將我們的系統從 ElasticSearch 6.8.8 升級到 ElasticSearch 7.17。 當我們使用 Java Rest API 運行可分頁查詢時,結果不正確。 例如,在 6.8.8 版本中,如果我們查詢數據並請求頁面大小為 10 的頁面 2,則查詢返回頁面 2 上的 10 項,並給我們提供了 10000 條記錄的 totalElement,這是正確的。 當我們在版本 7.17 上運行同樣的查詢時,它會在第 2 頁返回 10 個項目,但只給我們一個 totalElement 10 而不是正確的數字。 我們需要正確的數字,以便我們的 gridview 正確處理分頁。 ElasticSearch 7.17 版中是否缺少我的設置?

Elasticsearch 在 ES 7.X 的所有搜索中實現了Track_total_hits選項。

通常,如果不訪問所有匹配項,就無法准確計算總命中數,這對於匹配大量文檔的查詢來說代價高昂。 track_total_hits 參數允許您控制應如何跟蹤點擊總數。 鑒於通常具有命中數的下限就足夠了,例如“至少有 10000 個命中”,因此默認設置為 10,000。 這意味着請求將准確計算總命中數,最高可達 10,000 次命中。 如果您在某個閾值之后不需要准確的命中數,那么加快搜索速度是一個很好的權衡。

因此,要強制 ES 計算所有命中文檔,您應該將Track_total_hits設置為 true。 更多信息,你可以在這里查看 ES 官方文檔頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM