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 通常将请求类型序列化为长格式,然后从长格式反序列化。
实际上,我是 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 通常将请求类型序列化为长格式,然后从长格式反序列化。