ElasticSearch嵌套范围过滤器

时间:2013-07-03 15:17:37

标签: elasticsearch elastica

我正在尝试构建一个ElasticSearch查询,但我没有得到我期望的结果。任何帮助都会非常感激!

映射详细信息:

我索引了代表志愿者机会的文件。每个机会都有以下字段:

  1. 对手的头衔,
  2. 总之,
  3. 审批状态,
  4. 隐私设置。
  5. 此外,每个机会文件都有:

    1. 一个嵌套的非营利性文件,代表志愿者机会的非营利主机,
    2. 一个或多个嵌套的原因文档,代表机会所解决的原因,
    3. 零个或多个嵌套技能文件,代表志愿者所需的技能,
    4. 零个或多个嵌套班次文件,代表志愿者可以注册的时间段。
    5. 目前,每个嵌套的班次文档都包含一个带有开始和结束日期时间字段的嵌套日历框文档,以及可以注册该班次的最大志愿者数量的字段。

      查询

      我尝试构建的查询是过滤后的查询。查询字符串从Web上的表单传入。然后,我需要以编程方式将至少三个过滤器附加到此查询:

      1. 条款过滤器仅返回“已批准”的机会:“y”
      2. 条款过滤器仅返回带有“私人”的机会:“n”
      3. 范围过滤器,仅返回具有至少一个班次的机会,其中calendarBlock结束字段大于当前日期/时间。 (IE:过滤掉所有过去的班次。)
      4. 前两个过滤器工作正常。第三个是我被困住的地方。我认为问题可能与复杂的嵌套结构有关。我尝试了一个嵌套过滤器,但我不确定我是否正确地做了这个。此外,日期字段实际上嵌套了两个级别。当我尝试查询时,我仍然得到过去轮班的结果。

        在没有安排未来班次的情况下,完成过滤掉所有机会的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我的问题与格式化日期时间的方式有关。