04-07-2021 08:58 AM
Bonjour,
J'ai un problème avec mes requêtes NXQL, en effet je cherche à effectuer une recherche sur un champ (dc:title par exemple) qui ne soit pas sensible à la casse depuis une application développée avec Django et utilisant l'API Python de Nuxeo.
Toutefois lorsque j'essaye d'utiliser "ILIKE" dans ma requête NXQL celle-ci ne retourne rien alors qu'elle est correcte (marche dans la partie Administrateur de la GED Nuxeo)
query = "SELECT * FROM Document WHERE ecm:path STARTSWITH '" + category.path.split("{", maxsplit=1)[0] + "' AND ecm:primaryType = '" + category.doc_type + "'"
# Récupération des données du formulaire
for field in form.fields:
result = unquote(re.search(field + '(.+?)&', request.__str__()).group(1).replace("=", "")).replace("+", " ")
f = field.replace("ctm_", "")
cel = CategoryElement.objects.get(category=category, element=Element.objects.get(name=f))
if cel.property_type and cel.is_text_field:
query += " AND " + cel.property_type + ":" + f + " ILIKE '%" + result + "%'"
values.append([cel.property_type + ":" + f, result])
print(query)
docs = sso_instance.nuxeo.client.query(query=query)
print(docs['entries'])
ce programme affiche :
SELECT * FROM Document WHERE ecm:path STARTSWITH '/SVE' AND ecm:primaryType = 'Cocktail' AND dc:title ILIKE '%CaRTe%'
[]
J'aimerais savoir si il y a une syntaxe particulière pour le ILIKE ne utilisant l'API Python ou s'il est possible de faire quelque chose pour que les requêtes ne soient pas sensibles à la casse.
Merci d'avance,
Hugo
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.