我有下一个有效的弹性搜索查询:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"IsDeleted": false
}
},
{
"query": {
"query_string": {
"fields": [
"payPlan.PayPlanData.*"
],
"query": "(StartInterval :[1 TO 100] AND (EndInterval :[1 TO 9999999]))"
}
}
}
]
}
}
}
}
}
是否可以将其定义为c#Nest.FilterDescriptor
元素?
主要问题是将QueryStringQuery
定义为过滤器
答案 0 :(得分:0)
以下是我设法创建实现弹性搜索查询字符串作为过滤器的示例,我添加了其他过滤器,以便您可以看到一个真实示例:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"term": {
"NotSpan": true
}
},
{
"and": {
"filters": [
{
"bool": {
"must": [
{
"fquery": {
"query": {
"query_string": {
"query": "(StartTimeAsNumber :[1 TO 12345] AND (EndTimeAsNumber :[12345 TO 9999999]))",
"default_field": "PayPlan.PayPlanData.*"
}
}
}
}
]
}
}
]
}
}
],
"must_not": [
{
"term": {
"userRole": "admin"
}
}
]
}
}
}
} }