【问题标题】:NEST : Create Alias and set filterNEST:创建别名并设置过滤器
【发布时间】:2020-06-04 09:02:46
【问题描述】:

我对 ES 很陌生。在探索 .Net 的 NEST 客户端时,我遇到了一种无法弄清楚如何使用 NEST.Net 实现的情况。

配置: .Net 4.6.1 巢 7.2.0

我正在尝试在现有索引上设置别名。我能够使用以下方法实现它。

await _client.Indices.PutAliasAsync(indexName, aliasName);

这会在索引上创建一个别名,尽管别名为空。

现在我想实现以下结构。

"MyIndexName" : {
    "aliases" : {
      "MyAliasName" : {
        "filter" : {
          "term" : {
            "MyFilterTerm" : "MyFilterTermValue"
          }
        }
      },
}

我在sn-p下面用过

await _client.Indices.PutAliasAsync(indexName, aliasName,
                                a => a.Filter<MyTestClass>(
                                    f => f.Term("MyFilterTerm", "MyFilterTermValue")));

public class MyTestClass {// not sure what this was supposed to be}

然而这会产生如下的 json。

"MyIndexName" : {
    "aliases" : {
      "MyAliasName" : {
        "filter" : {
          "term" : {
            "MyFilterTerm" : {
              "value" : "MyFilterTermValue"
            }
          }
        }
      },
}

第一种JSON格式如何实现?

【问题讨论】:

    标签: c# .net elasticsearch nest


    【解决方案1】:

    filter 子句中 term 查询的两种 JSON 格式是等效的。 NEST 通常会发出较长形式的查询,对于 term query 来说是

    "term" : {
        "<field>" : {
            "value" : "<value>"
        }
    }
    

    相对于简写形式

    "term" : {
        "<field>" : "<value>"
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 2013-11-19
      • 1970-01-01
      • 2019-04-09
      • 2015-08-10
      • 1970-01-01
      • 2017-11-10
      • 2020-08-03
      • 1970-01-01
      相关资源
      最近更新 更多