【发布时间】:2018-03-07 16:46:35
【问题描述】:
我有一个包含 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, "甜点") 或 ARRAY_CONTAINS(c.tags, "辣味")
这有效,但区分大小写。如何使这个不区分大小写?我尝试像这样使用标量函数 LOWER
LOWER(c.tags), LOWER("甜点")
但这似乎不适用于 ARRAY_CONTAINS。
知道如何使用 DocumentDB 的 SQL 查询对多个关键字执行不区分大小写的搜索吗?
谢谢,
AB
【问题讨论】:
-
关键字的数量是确定性的吗?还是可能很大?你想考虑人们写有拼写错误的关键字吗?
标签: sql search azure-cosmosdb