簡體   English   中英

ElasticSearch嵌套范圍過濾器

[英]ElasticSearch Nested Range Filter

我試圖構建一個ElasticSearch查詢,但沒有得到我期望的結果。 任何幫助將非常感激!

映射細節:

我索引了代表志願者機會的文件。 每個機會都有以下字段:

  1. 對手的頭銜,
  2. 摘要,
  3. 批准狀態,和
  4. 隱私設置。

此外,每個機會文件都有:

  1. 一個嵌套的非營利性文件,代表志願者機會的非營利主機,
  2. 一個或多個嵌套的原因文檔,表示機會所解決的原因,
  3. 零個或多個嵌套技能文件,代表志願者所需的技能,以及
  4. 零個或多個嵌套班次文件,代表志願者可以注冊的時間段。

目前,每個嵌套的班次文檔都包含一個帶有開始和結束日期時間字段的嵌套日歷框文檔,以及可以注冊該班次的最大志願者數量的字段。

查詢

我試圖構建的查詢是一個過濾的查詢。 查詢字符串從Web上的表單傳入。 然后,我需要以編程方式將至少三個過濾器附加到此查詢:

  1. 條款過濾器僅返回“已批准”的機會:“y”
  2. 術語過濾器僅返回具有“私有”的機會:“n”
  3. 范圍過濾器僅返回具有至少一個班次的機會,其中calendarBlock結束字段大於當前日期/時間。 (IE:過濾掉所有過去的班次。)

前兩個過濾器工作正常。 第三個是我被困住的地方。 我認為問題可能與復雜的嵌套結構有關。 我嘗試了一個嵌套過濾器,但我不確定我是否正確地做了這個。 此外,日期字段實際上嵌套了兩個級別。 當我嘗試查詢時,我仍然得到過去輪班的結果。

在沒有安排未來班次的情況下,完成過濾所有機會的正確方法是什么?

我的問題與我格式化日期時間的方式有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM