ElasticSearch 6.x和NEST简单查询

时间:2018-08-11 20:00:55

标签: elasticsearch nest

实际上,我是ElasticSearch的新手,只被一个简单的NEST查询所困扰。 这是我的课程,用于在ElasticSearch中存储数据:

public class MyClass
{
        public Guid Id { get; set; }
        public string Name { get; set; }
        public string Language { get; set; }
}

我需要按语言来获取文档(例如,语言==“ eng”) 我使用的是NEST 6.x

这是SerchDescriptor

searchDescriptor = new SearchDescriptor<MyClass>()
                .Index(indexName)
                .Query(q => q.Term("Language", "eng"));

它产生请求:

{
  "query": {
    "term": {
      "Language": {
        "value": "eng"
      }
    }
  }
}

但正确的请求是

{
  "query": {
    "term": {
      "Language": "eng"
    }
  }
}

如何通过NEST收到正确的请求?

1 个答案:

答案 0 :(得分:1)

两种形式均有效;前者是long form of term query,它接受​​其他属性,例如 { "error": { "errors": [ { "domain": "global", "reason": "forbidden", "message": "Forbidden" } ], "code": 403, "message": "Forbidden" } } boost

NEST通常会将请求类型序列化为长格式,然后从长格式反序列化。