找到Algolia的重叠范围?

时间:2018-04-17 15:22:17

标签: elasticsearch date-range algolia

您如何搜索Algolia的重叠数值范围?

例如(我的用例),我正在处理日历上的事件。每个活动都有一个dateendDate,我试图找到一个月内发生的所有事件。现在我正在使用' numericFilters`进行搜索:

{
  ...
  "facetFilters":"...",
  "numericFilters":"[[
    \"date:1517472000000 TO 1524985199999\",
    \"endDate:1517472000000 TO 1524985199999\"
  ]]"
}

这为我提供了一个月内开始或结束的所有活动。但是从上个月开始到下个月结束的事件呢?我该如何搜索?

1 个答案:

答案 0 :(得分:4)

不确定如何使用elasticsearch进行此操作,但是对于Algolia,这是正确的方法。删除date上的过滤,您可以获取随时开始并在本月结束的所有事件:

"numericFilters":"[[
  \"endDate:1517472000000 TO 1524985199999\"
]]"

但是,如果您希望所有在一个月内发生的事件,那么在该月的之前或期间 期间或之后它,您将过滤删除在月末之后开始的那些以及那些在该月的开始之前结束的那些:

"filters":"date < 1524985199999 AND endDate > 1517472000000"