J'ai un conteneur blob dans un compte de stockage où chaque blob est une image. J'ai ajouté des champs de métadonnées "w" et "h" à chaque blob contenant la largeur et la hauteur de l'image.
J'ai suivi les instructions aquí pour ajouter un service de recherche au blob store, sauf que j'ai ajouté les métadonnées et non le contenu du blob.
Je peux confirmer que les métadonnées sont présentes et valides, si je parcours les blocs dans le portail Azure, je peux voir les champs avec des données valides et si j'exécute "search=*" dans l'explorateur de recherche, j'obtiens ce résultat pour chaque bloc :
{
"@search.score": 1,
"w": 640,
"h": 424,
"metadata_storage_path": "......"
}
Mon problème est que je veux faire une recherche par largeur (w) et hauteur (h) de l'image et je ne sais pas comment faire.
J'ai essayé les exemples de requêtes suivants pour rechercher w=640, mais sans succès, et j'ai obtenu tous les blobs ou les erreurs :
w=640
search=*&w=640
search=*&w eq 640
w eq 640
Une chose que j'ai remarquée est que lors de l'écriture des métadonnées du blob (j'ai utilisé la bibliothèque Python d'Azure storage), vous ne pouvez écrire que des données de type chaîne. Mais lorsque vous spécifiez les champs dans la source de données, vous pouvez les définir comme int32.
Comment activer la recherche filtrable sur les champs de métadonnées des blobs ?
Editar: Conformément à la réponse de SumanthMarigowda-MSFT, j'ai regardé une este et dans mon cas, voici quelques exemples de requêtes :
Seulement 640x480 :
search=*&$filter=(w eq 640 and h eq 480)
Tout ça avec un w entre 640 et 700 :
search=*&$filter=(w ge 640 and w lt 700)