Significant_termsでforeground queryとbackground queryが同じ場合の挙動

お世話になります。

Elasticsearch 5.4.2 から 7.3.0 へのアップデート検証を行っていたところ、significant_termsの挙動が異なっていました。

mappings

"keywords": {
  "type": "text",
  "index_options": "freqs",
  "norms": false,
  "fields": {
    "raw": {
      "type": "keyword",
      "ignore_above": 256
    }
  }
}
...

検索で使用したクエリ

{
    "query": {
        "query_string": {
            "default_operator": "AND",
            "query": "keywords:*"
        }
    },
    "size": 0,
    "aggs": {
        "sig_keywords": {
            "significant_terms": {
                "field": "keywords.raw",
                "size": 30,
                "min_doc_count": 3,
                "background_filter": {
                    "query_string": {
                        "query": "keywords:*",
                        "default_operator": "AND"
                    }
                }
            }
        }
    }
}

Response (Elasticsearch 5.4.2)

{
    'aggregations':{
        'sig_keywords': {
            'doc_count': 1798271,
            'buckets':[
                {'key': 'りんご', 'doc_count': 622344, 'score': 0.149700525325334, 'bg_count': 627509},
                {'key': 'ぶどう', 'doc_count': 391372, 'score': 0.09621372052089101, 'bg_count': 392015},
                {'key': 'なし', 'doc_count': 277625, 'score': 0.06527967457084201, 'bg_count': 281842},
                ...
            ]
        }
    }
    ...
}

Response (Elasticsearch 7.3.0)

{
    'aggregations':{
        'sig_keywords': {
            'doc_count': 1798271,
            'bg_count': 1798271,
            'buckets':[]
        }
    }
    ...
}

foreground queryとbackground queryの結果が同じ場合、scoreの算出ができずbucketsが出力されないのかなと思っています。
そうであればscoreが算出できてしまっているのが5.4.2のバグで、それが修正されたのかとrelease noteを探してみたのですがそれらしい内容を見つけられませんでした。

もし5.4.2時点の挙動が正しいのであれば7.3.0の挙動はバグのようにも見えます。
7.3.0でのこの挙動は正しい動きなんでしょうか?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.