Elasticsearch - определить строку запроса как фильтр в C#

У меня есть следующий рабочий упругий поисковый запрос:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "IsDeleted": false
              }
            },
            {
              "query": {
                "query_string": {
                  "fields": [
                    "payPlan.PayPlanData.*"
                  ],
                  "query": "(StartInterval :[1 TO 100] AND (EndInterval :[1 TO 9999999]))"
                }
              }
            }
          ]
        }
      }
    }
  }
}

Можно ли определить это как aC# Nest.FilterDescriptor элемент? Основная проблема заключается в определении QueryStringQuery в качестве фильтра

1 ответ

Вот пример того, что мне удалось создать для реализации строки эластичного поискового запроса в качестве фильтра, я добавил другие фильтры, чтобы вы могли увидеть реальный пример:

{
"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"
          }
        }
      ]
    }
  }
}

}}

Другие вопросы по тегам