search - 多面搜索和汇总无法正常工作

标签 search lucene elasticsearch full-text-search

我有一个商店的索引,其类型为Items,即/store/items
除其他属性外,项还具有Title(分析了文本),Description(分析了文本)和Tags( not_analyzed 文本)。

我希望能够显示带有计数的标签方面,因此如果
例如,“黄色”标签的方面的计数为12,则当
用户将该标签添加到过滤器中,她只会看到12个项目。

我在Elasticsearch上使用带有Aggs的过滤查询,如下所示
1.1.1在单个节点上:

GET _search {
  "query": {
    "filtered": {
      "query": {
        "multi_match": {
          "query": "Large Widgets",
          "fields": [
            "title^3",
            "description"
          ]
        }
      },
      "filter": {
        "terms": {
          "tags": [
            "Colorful"
          ],
          "execution": "and"
        }
      }
    }
  },
  "aggs": {
    "available_tags": {
      "terms": {
        "field": "tags"
      }
    },
    "size": 20
  }
}

我有两个问题:
  • 无论我为aggs / size传递什么值,我都会得到10个聚合。
    我想得到10以上。
  • 将新标签添加到过滤器时返回的点击计数
    与聚合随附的doc_count不匹配,因为
    例如,聚合可能会显示标记的doc_count为12
    “黄色”,但如果我在过滤条件中添加“黄色”,则其显示为"tags": [ "Colorful", "Yellow" ]我得到了17次点击,而不是预期的12次。

  • 通常,这不会在第一个级别发生,而只会在后续钻取中发生。

    难道我做错了什么?某处有错误吗?

    这是Elasticsearch邮件列表中的一个交叉post,没有引起足够的重视

    最佳答案

  • Shard_size不能小于该大小,因此您的大小可能大于shard_size。在这种情况下,Elasticsearch将覆盖它,使其等于shard_size。
  • “彩色”和“黄色”的过滤结果是否等于17个文档而不是12个“黄色”文档?
  • 关于search - 多面搜索和汇总无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23254153/

    相关文章:

    java - 如何使用带有多个搜索词的 appengine 搜索 api 进行搜索?

    php - 如何提高 Zend Lucene 的性能?

    mysql - 我如何使用子字符串而不是完整字符串在 mysql 中执行搜索?

    java - 如何从存储在 Arraylist 中的 Hashmap 中搜索并提取值

    search - 支持elasticsearch动态列查询

    lucene - Elasticsearch-搜索 Assets 可用性

    elasticsearch - Elasticsearch:如何计算docFreq

    elasticsearch - 我可以从Kibana可视化中获取消息吗?

    node.js - Elastic Search中unicode(emoji)字符的字符串查询

    ruby - Elasticsearch : No query registered for [or]