我有一个包含100个文档的Azure DocumentDB集合。我已在每个文档中对一系列搜索词进行了标记,以便根据关键字执行搜索。
我能够使用以下SQL查询对DocumentDB搜索一个关键字:
SELECT VALUE c FROM root c JOIN word IN c.tags WHERE CONTAINS(LOWER(word),LOWER('keyword'))
但是,这只允许基于单个关键字进行搜索。我希望能够搜索给定的多个关键字。为此,我尝试了以下查询:
SELECT * FROM c WHERE ARRAY_CONTAINS(c.tags,“Food”)或 ARRAY_CONTAINS(c.tags,“Dessert”)或ARRAY_CONTAINS(c.tags,“Spicy”)
这有效,但区分大小写。如何使这个不区分大小写?我尝试使用像这样的标量函数LOWER
LOWER(c.tags),LOWER(“Dessert”)
但这似乎不适用于ARRAY_CONTAINS。
我是否知道如何使用SQL查询为DocumentDB对多个关键字执行不区分大小写的搜索?
谢谢,
AB
答案 0 :(得分:0)
处理区分大小写的最佳方法是将它们存储在所有小写(或大写)的tags数组中,然后在查询时执行// empty object as target here
Object.assign({}, state, {
// empty object as target here as well
currentScanResult: Object.assign({}, state.currentScanResult, payload)
})
。
至于您希望搜索多个用户输入标记,您构建一系列LOWER(<user-input-tag>)
子句的方法可能是最好的方法。