mbajur
mbajur

Reputation: 4474

Significant terms buckets always empty

I have a collection of posts with their tags imported into Elasticsearch. The indexes are:

Single document looks like that:

{ "language": "en", "tags": ["foo", "bar"], created_at: "..." }

I'm trying to get the significant terms query on my data set using:

GET _search
{
  "aggregations": {
    "significant_tags": {
      "significant_terms": { 
        "field": "tags"
      }
    }
  }
}

But the results bucket are always empty:

{
  "took": 22,
  "timed_out": false,
  "_shards": {
    "total": 6,
    "successful": 6,
    "skipped": 0,
    "failed": 0
  },
  "aggregations": {
    "significant_tags": {
      "doc_count": 2945,
      "bg_count": 2945,
      "buckets": []
    }
  }
}

I can confirm the data is properly imported as i'm able to any other aggregation on this dataset and it works fine. Just the significant terms don't want to cooperate. Any ideas on what am i possibly doing wrong in here?

Upvotes: 1

Views: 661

Answers (1)

sramalingam24
sramalingam24

Reputation: 1337

Significant terms needs a foreground query or aggregation for it to calculate difference in term frequencies and produce statistically significant results. So you will need to add a initial query then your aggregation. See the doc for details https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significantterms-aggregation.html

Upvotes: 2

Related Questions