LoginSignup
14
5

More than 3 years have passed since last update.

Elasticsearchを7.Xにアップグレードしたら、hitsが10,000 になってた

Last updated at Posted at 2020-01-16

概要

ここ最近、Elasticsearchを7.Xにアップグレードしたら、1万件超えてるデータのhitsが10,000 になっていた
また、「Java High Level REST Client」を使用したアプリでの取得は0になっていた・・・・・

Elasticsearch7.0.0から10,000hitsまで正確に確認できる

10,000hits以上どうやって検索する?

ドキュメントのサンプルから持ってきたのだが、track_total_hitsをtrueに設定すると
10,000hits以上を検索できる

curl -X GET "localhost:9200/twitter/_search?pretty" -H 'Content-Type: application/json' -d'
{
    "track_total_hits": true,
     "query": {
        "match" : {
            "message" : "Elasticsearch"
        }
     }
}

Track total hits

Java High Level REST Clientでは?

まず、7.0.0以上の「Java High Level REST Client」を使用する

「SearchSourceBuilder」の「trackTotalHits」メソッドに「true」を設定すればできる

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder. trackTotalHits(true);

(java doc) SearchSourceBuilder.trackTotalHits

hitsの件数の取得方法が6.Xのものと比べて変更があった

long hits = hits.getTotalHits().value;

6.Xの時は「getTotalHits」メソッドの戻り値がlongだった

long totalHits = hits.getTotalHits();
14
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
5