我有一个数据数组,其中 Algolia 索引中包含多个对象,如下所示。
[
{
status:available
startDate: 2000-10-20
endDate:2022-10-20
availablePlatform:[1,2,3]
availableCountry:908,
},
{
status:available,
startDate: 2023-10-20
endDate:2123-10-20
availablePlatform:[4,5,6,7]
AvailableCountry:[144],
},
]
Run Code Online (Sandbox Code Playgroud)
我需要执行一个过滤,该过滤应该在这些对象中进行精确匹配。
前任:
(1)
avails.status:available AND avails.availablePlatform:2 AND avails.availableCountry:908
这将按预期返回 true。
(2)
avails.status:available AND avails.availablePlatform:2 AND avails.availableCountry:144
availableCountry当 Algolia与第二个对象匹配时,该值也会返回 true 。但在这种情况下我需要返回 false。这样的能力是否存在?或者人们可以向我指出解决这个问题的其他方法吗?
谢谢。
根据这篇关于 Algolia 的文章,您必须为avails数组中的每个元素索引一个单独的记录,这是唯一的方法。
假设您的条目看起来像这样
[{
objectID: 'someid',
somefield: 'somevalue',
avails: [{
status: 'available'
startDate: '2000 - 10 - 20'
endDate: '2022 - 10 - 20'
availablePlatform: [1, 2, 3]
availableCountry: 908,
},
{
status: 'available',
startDate: '2023 - 10 - 20'
endDate: '2123 - 10 - 20'
availablePlatform: [4, 5, 6, 7]
availableCountry: [144],
},
]
}]
Run Code Online (Sandbox Code Playgroud)
您可能必须将数组中的每个条目的条目分解为索引上的子条目avails。这样做的缺点是,现在数组中每个元素的记录数量和冗余数据都会avails增加
[{
objectID: 'someid-1',
somefield: 'somevalue',
avails: {
status: 'available'
startDate: '2000 - 10 - 20'
endDate: '2022 - 10 - 20'
availablePlatform: [1, 2, 3]
availableCountry: 908,
}
},
{
objectID: 'someid-2',
somefield: 'somevalue',
avails: {
status: 'available',
startDate: '2023 - 10 - 20'
endDate: '2123 - 10 - 20'
availablePlatform: [4, 5, 6, 7]
availableCountry: [144],
}
}
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |