实际上,我是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收到正确的请求?
答案 0 :(得分:1)
两种形式均有效;前者是long form of term
query,它接受其他属性,例如 {
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"
}
],
"code": 403,
"message": "Forbidden"
}
}
和boost
。
NEST通常会将请求类型序列化为长格式,然后从长格式反序列化。