NEST:创建别名并设置过滤器
NEST : Create Alias and set filter
我对 ES 很陌生。在探索 .Net 的 NEST 客户端时,我遇到了一种无法弄清楚如何使用 NEST.Net.
实现的情况
配置:
.Net 4.6.1
巢 7.2.0
我正在尝试的是在现有索引上设置别名。我能够使用以下方法实现它。
await _client.Indices.PutAliasAsync(indexName, aliasName);
这会在索引上创建一个别名,尽管别名是空的。
现在我想实现下面的结构。
"MyIndexName" : {
"aliases" : {
"MyAliasName" : {
"filter" : {
"term" : {
"MyFilterTerm" : "MyFilterTermValue"
}
}
},
}
我使用了下面的代码片段
await _client.Indices.PutAliasAsync(indexName, aliasName,
a => a.Filter<MyTestClass>(
f => f.Term("MyFilterTerm", "MyFilterTermValue")));
public class MyTestClass {// not sure what this was supposed to be}
但是这会产生如下 json。
"MyIndexName" : {
"aliases" : {
"MyAliasName" : {
"filter" : {
"term" : {
"MyFilterTerm" : {
"value" : "MyFilterTermValue"
}
}
}
},
}
如何实现第一个 JSON 格式?
filter
子句中 term
查询的两种 JSON 格式是等效的。 NEST 通常会发出较长形式的查询,对于 term query 是
"term" : {
"<field>" : {
"value" : "<value>"
}
}
相对于短格式
"term" : {
"<field>" : "<value>"
}
我对 ES 很陌生。在探索 .Net 的 NEST 客户端时,我遇到了一种无法弄清楚如何使用 NEST.Net.
实现的情况配置: .Net 4.6.1 巢 7.2.0
我正在尝试的是在现有索引上设置别名。我能够使用以下方法实现它。
await _client.Indices.PutAliasAsync(indexName, aliasName);
这会在索引上创建一个别名,尽管别名是空的。
现在我想实现下面的结构。
"MyIndexName" : {
"aliases" : {
"MyAliasName" : {
"filter" : {
"term" : {
"MyFilterTerm" : "MyFilterTermValue"
}
}
},
}
我使用了下面的代码片段
await _client.Indices.PutAliasAsync(indexName, aliasName,
a => a.Filter<MyTestClass>(
f => f.Term("MyFilterTerm", "MyFilterTermValue")));
public class MyTestClass {// not sure what this was supposed to be}
但是这会产生如下 json。
"MyIndexName" : {
"aliases" : {
"MyAliasName" : {
"filter" : {
"term" : {
"MyFilterTerm" : {
"value" : "MyFilterTermValue"
}
}
}
},
}
如何实现第一个 JSON 格式?
filter
子句中 term
查询的两种 JSON 格式是等效的。 NEST 通常会发出较长形式的查询,对于 term query 是
"term" : {
"<field>" : {
"value" : "<value>"
}
}
相对于短格式
"term" : {
"<field>" : "<value>"
}