重要术语桶总是空的

时间:2018-04-22 21:58:55

标签: elasticsearch

我有一系列帖子,其标签已导入Elasticsearch。索引是:

  • 语言 - 类型:关键字
  • tags(array) - type:keyword
  • created_at - type:date

单个文档看起来像这样:

  function getStepChekboxes(id) {
        var selector = '#replies-' + id + ':checkbox:checked';
        console.log(selector);
        return $(selector).filter(function(i,el) {
            return $(el).data("question") == id
        }).val();
    }

我正在尝试使用以下方法在我的数据集上获取重要的术语查询:

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

但结果桶总是空的:

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

我可以确认数据已正确导入,因为我可以对此数据集进行任何其他聚合,并且工作正常。只是重要条款不想合作。关于我在这里可能做错什么的任何想法?

  • Elasticsearch 6.2.4

1 个答案:

答案 0 :(得分:1)

重要术语需要前景查询或聚合才能计算术语频率的差异并产生统计上显着的结果。因此,您需要添加初始查询然后添加聚合。有关详细信息,请参阅文档https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significantterms-aggregation.html