小编bor*_*ris的帖子

Elasticsearch NEST按日期范围过滤

我正在使用以前从未使用过的弹性搜索.Net NEST客户端.我想要做的是在得分之前按日期范围过滤结果.

我正在使用Object初始化器语法,因为它最适合我.

我完成了我想要的东西:

        var filter = new FilteredQuery();

        var queryForm = new TermQuery();
        queryForm.Field = "id";
        queryForm.Value = filterModel.Id;

        filter.Query &= queryForm;

        var rangeQuery = new DateRangeQuery();
        rangeQuery.Field = "datetime";
        rangeQuery.GreaterThanOrEqualTo = filterModel.DateBegin.Value.AddDays(-1);
        rangeQuery.LessThanOrEqualTo = filterModel.DateEnd.Value.AddDays(1);
        filter.Filter = rangeQuery;

        // Use boolean query
        searchRequest.Query = new BoolQuery() && filter;
Run Code Online (Sandbox Code Playgroud)

这给了我像我期望的JSON请求:

   {
  "from": 0,
  "size": 0,
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "id": {
                  "value": "XXXX"
                }
              }
            }
          ]
        }
      },
      "filter": …
Run Code Online (Sandbox Code Playgroud)

c# elasticsearch nest

4
推荐指数
1
解决办法
4573
查看次数

标签 统计

c# ×1

elasticsearch ×1

nest ×1