【问题标题】:Limit the size per index when searching multiple index in Elastic在 Elastic 中搜索多个索引时限制每个索引的大小
【发布时间】:2021-08-04 23:13:51
【问题描述】:

我一直遵循这篇文章中的指导方针。我可以获得所需的输出,但在同一个 DSL 中,如何限制每个索引的结果大小?

Full text Search with Multiple index in Elastic Search using NEST C#

POST http://localhost:9200/componenttypeindex%2Cprojecttypeindex/Componenttype%2CProjecttype/_search?pretty=true&typed_keys=true     
{
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "filter": [
              {
                "term": {
                  "_index": {
                    "value": "componenttypeindex"
                  }
                }
              }
            ],
            "must": [
              {
                "multi_match": {
                  "fields": [
                    "Componentname",
                    "Summary^1.1"
                  ],
                  "operator": "or",
                  "query": "test"
                }
              }
            ]
          }
        },
        {
          "bool": {
            "filter": [
              {
                "term": {
                  "_index": {
                    "value": "projecttypeindex"
                  }
                }
              }
            ],
            "must": [
              {
                "multi_match": {
                  "fields": [
                    "Projectname",
                    "Summary^0.3"
                  ],
                  "operator": "or",
                  "query": "test"
                }
              }
            ]
          }
        }
      ]
    }
  }
}

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

    对于给定的查询,您可以使用聚合来分组和限制每个索引的命中数(在本例中,限制为 5):

    {
      "size": 0,
      "query": {
        ... Same query as above ...
      },
      "aggs": {
        "index_agg": {
          "terms": {
            "field": "_index",
            "size": 20
          },
          "aggs": {
            "hits_per_index": {
              "top_hits": {
                "size": 5
              }
            }
          }
        }
      }
    }
    

    【讨论】:

    • 谢谢!有没有办法不输出树根的“命中”而只输出聚合?
    • 我想这就是为什么 size 为 0 以从结果文档中去除“命中”的原因。
    • 是的,就是这个原因。抱歉,没有强调这一点,但最后你自己发现了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多