ElasticSearch 6.x 和 NEST 简单查询

ElasticSearch 6.x and NEST simple query

实际上,我是 ElasticSearch 的新手,只遇到了一个简单的 NEST 查询。 这是我 class 在 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 获得正确的请求?

两种形式均有效;前者是接受其他属性的 long form of term query,例如 boost_name.

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