【问题标题】:Write bool and aggregate query in C#在 C# 中编写 bool 和聚合查询
【发布时间】:2016-05-22 09:17:44
【问题描述】:

伙计们,我想编写将使用过滤器获取不同结果的嵌套查询。 我想使用Nest 在c# 中写下Elasticsearch 代码的一部分。

GET /index/type/_search
{
"query": {
    "bool": {            
        "must": [
           {
              "terms": {
                "ID": [ "5","6" ]          
              }
            },
            {
              "terms": {
                "ProjectID": [ "54"]
              }
            }
        ]
      }
   },
  "aggs": {
  "my_fields": {
  "terms": {
    "field": "ID",
    "size": 0
     }
   }
  }
 }

我是 Elasticsearch 的新手。请帮我用 lambda 表达式编写它。我写了一些代码,但不知道如何在查询中添加方括号

var ElasticSearchNetQuery = new { aggs = new { distinctRespId = new { cardinality = new { field = "RespID" }, query = new { @bool = new { must= new { } } } }, size = 10000 } };

【问题讨论】:

  • JSON [ "5", "6"] 在 C# 中可以翻译为:new[] { "5", "6" }。是你要找的吗?
  • 哦,朋友,我做了一些更改,它起作用了,但它不允许我在 new[] 术语中放入不同的词,例如 ID 和 ProjectID,出现编译时错误 var ElasticSearchNetQuery = new { aggs = new { distinctRespId = new { car​​dinality = new { field = "RespID" }, query = new { @bool = new { must = new[] { new { terms = new { QID = "" } }, new { terms = new { ProjectID = "" } } } } } } }, 大小 = 10000 };

标签: elasticsearch lambda nest elasticsearch-plugin


【解决方案1】:
var results = client.Search<object>(sd => sd
    .Index("<index name>")
    .Type("<type name>")
    .Query(q => q
        .Bool(b => b
            .Must(
                m => m.Terms("ID", new[] { "5", "6" }),
                m => m.Terms("ProjectID", new[] { "54" }))))
    .Aggregations(a => a
        .Terms("my_fields", t => t
            .Field("ID")
            .Size(0)));

【讨论】:

  • 你写的 lambda 查询很漂亮,但是在获取所有记录时出现问题,过滤器不起作用:(
  • 我看不出它不应该工作的原因。这很简单。你能解释一下你收到了哪些额外的结果吗?
  • 这个查询返回'type'的所有记录,这意味着过滤器不起作用。
  • 您是否得到任何结果,其中“ID”字段的值既不是 5 也不是 6,或者字段“ProjectID”的值不是 54?如果是这样,请分享您的映射和一些您认为不应该匹配但确实匹配的示例结果文档。
  • 嘿,您的查询是绝对正确的,但是 Rest API 插件和 C# 返回不同的结果.....sad thanx bdw :|
猜你喜欢
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
相关资源
最近更新 更多