2017-09-26 76 views
0

我有一個帶有100個文檔的Azure DocumentDB集合。我已經在每個文檔中標記了一系列搜索條件,以根據關鍵字執行搜索。在DocumentDB集合中搜索多個關鍵字

我可以使用下面的DocumentDB SQL查詢來搜索上只有一個關鍵詞:

SELECT值C從根部爲C JOIN字IN c.tags WHERE CONTAINS(LOWER(字),LOWER(」關鍵字'))

但是,這隻允許基於單個關鍵字進行搜索。我希望能夠搜索給定的多個關鍵字。對於這一點,我想下面的查詢:

SELECT * FROM C,其中ARRAY_CONTAINS(c.tags, 「食品」)或 ARRAY_CONTAINS(c.tags, 「甜品」)或ARRAY_CONTAINS(c.tags,「香辣「)

此方法適用,但區分大小寫。我如何使這種不區分大小寫?我嘗試使用標量函數LOWER這樣

LOWER(c.tags),LOWER( 「甜點」)

,但是這似乎並沒有與ARRAY_CONTAINS工作。

任何想法如何使用DocumentDB的SQL查詢對多個關鍵字執行不區分大小寫的搜索?

感謝,

AB

+0

關鍵字的數量是確定性的嗎?或者它可能很大?你想考慮人們寫拼寫錯誤的關鍵字嗎? –

回答

0

應對區分大小寫的最好方法是把它們存放到標籤陣列全部小寫(或大寫)中,然後就做LOWER(<user-input-tag>)在查詢時。

至於你希望搜索多個用戶輸入標籤,你的方法建立一系列OR子句可能是最好的方法。