【问题标题】:ElasticSearch terms_stats query - exclude terms from resultElasticSearch terms_stats 查询 - 从结果中排除术语
【发布时间】:2013-04-19 06:54:22
【问题描述】:

我目前有一个术语方面,它使用 exclude 选项从结果中排除某些术语。我对 term_stats 方面进行了相同的尝试,但没有丢弃相同的结果。

我查看了 Elasticsearch 文档 (http://www.elasticsearch.org/guide/reference/api/search/facets/terms-stats-facet/),发现 term_stats 方面似乎没有排除选项。因为我并不总是相信我对 elasticsearch 文档的完整解释,所以我想看看是否有人找到了解决方法(除了在客户端处理结果之外)。

这个方面没有按预期工作:

"keywords_bad":{
  "terms_stats":{
    "size":100,
    "value_field":"retweet_count",
    "exclude":["http","consected"],
    "order":"total",
    "key_field":"text"
  }
}

而这个方面按预期工作:

"keywords_good":{    
  "terms":{
    "size":100,
    "exclude":["http","consected"],
    "order":"count",
    "field":"text"
  }
}

任何合理的建议将不胜感激,因为这似乎有点不一致。

更新

根据 imotov 接受的答案,我在 GitHub 上的https://github.com/elasticsearch/elasticsearch/issues/2916创建了一个问题

【问题讨论】:

  • 一条记录可以有多少个不同的词条?一条记录可以同时包含和排除术语吗?
  • 术语方面有效地计算每个术语出现的文档数量,因此您可以查看哪些术语出现在更多文档中。例如,如果您在推文上运行一个术语方面,您会看到 http 并且您的屏幕名称出现加载。 “排除”允许过滤掉这些术语,同时不排除整个文档查找其他术语(如查询/过滤器那样)。 'term_stats' 应该做同样的事情,但不是为每个文档计算 1,它应该合计 value_field 中的值。所以我想以同样的方式排除不必要的术语。
  • 或回答您的问题 imotov,除非明确排除(对于术语方面),否则所有术语都包含在内。而且似乎没有办法在 terms_stats 方面排除术语,从而使一大堆垃圾有资格被计算在内。
  • 我明白了。我只是想弄清楚 facet_filter 是否可以用作解决方法。显然不是。 terms_stats 目前不支持排除。我建议在 github 上创建一个问题,要求添加它。
  • imotov - 这听起来像是答案。随意发布它。

标签: elasticsearch facets


【解决方案1】:

terms_stats 方面目前不支持排除。我建议在 github 上创建一个问题,要求添加它。

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多