J'ai une collection Azure DocumentDB avec 100 documents. J'ai énuméré un tableau de termes de recherche dans chaque document pour effectuer une recherche basée sur des mots-clés.Rechercher plusieurs mots-clés dans la collection DocumentDB
j'ai pu effectuer une recherche sur un seul mot clé en utilisant requête SQL ci-dessous pour DocumentDB:
SELECT VALEUR c de la racine c REJOIGNEZ mot IN c.tags OÙ CONTIENT (BAS (mot), BAS (» mot-clé '))
Cependant, cela ne permet que la recherche basée sur un seul mot-clé. Je veux être en mesure de rechercher plusieurs mots-clés donnés. Pour cela, j'ai essayé ci-dessous requête:
SELECT * FROM c OÙ ARRAY_CONTAINS (c.tags, "Food") OU ARRAY_CONTAINS (c.tags, "Dessert") OU (ARRAY_CONTAINS c.tags, « épicé ")
Cela fonctionne, mais est sensible à la casse. Comment est-ce que je rends ce cas insensible? J'ai essayé d'utiliser la fonction scalaire INFÉRIEUR comme ce
inférieur (c.tags), BASSE ("Dessert")
mais cela ne semble pas travailler avec ARRAY_CONTAINS.
Une idée de comment je peux effectuer une recherche insensible à la casse sur plusieurs mots-clés en utilisant la requête SQL pour DocumentDB?
Merci,
AB
La quantité de mots-clés est-elle déterministe? Ou pourrait-il être potentiellement grand? Voulez-vous considérer les personnes qui écrivent les mots-clés avec des fautes d'orthographe? –