【问题标题】:Search multiple indices against some index pattern using NEST使用 NEST 针对某些索引模式搜索多个索引
【发布时间】:2019-07-15 05:21:17
【问题描述】:

我搜索了 NEST 文档,但似乎找不到合适的答案。 我的问题是如何使用 NEST 针对某些索引模式搜索多个索引?例如

如果我在 Elasticsearch DB 中有以下名称的索引

media-2017-10, media-2018-03, media-2018-04

为了指定我选择的索引,我需要像这样使用通配符 *:

client.Search<Media>(s => s
   .Index("media-*")
   . query goes here .....

在 NEST 中可以吗?

【问题讨论】:

    标签: elasticsearch search wildcard nest elasticsearch-indices


    【解决方案1】:

    是的,这行得通。试试看:)

    .Index(...) 接受通配符索引

    【讨论】:

      【解决方案2】:

      您也可以通过这种方式在多个索引中搜索:

      var allIndices = new[] {
              "media-*",
              "docs-*",
              "common-*"           
          };
      
      Nest.Indices allIndices = allIndices;
      return _elasticClient
                  .SearchAsync<EsBaseModel>(s => s
                      .Index( allIndices)
                      .Size(_esConfig.MaxCallIDsSize)
                      .RequestConfiguration(r => r.RequestTimeout(TimeSpan.FromMinutes(5)))
                      .Query(q =>
                          q.Match(m => m.Field("fieldname").Query(condition))                        
                      ));
      

      步骤:

      只需创建一个带有字符串索引的数组。 索引可以是显式或隐式使用 Nest 客户端文档支持的任何模式

      注意 - 需要注意优化搜索,因为搜索您提供的所有索引可能需要一段时间。 (可以通过忽略非常旧的日期、限制结果等来实现优化...)

      【讨论】:

        猜你喜欢
        • 2021-08-12
        • 2021-05-18
        • 2018-01-12
        • 1970-01-01
        • 2018-05-29
        • 2019-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多