Comment puis-je créer une collection intelligente qui recherche un seul mot clé donné dans Lightroom 3?


8

Je pense que je connais assez bien mon Lightroom, mais je n'ai pas trouvé de moyen de créer une collection intelligente qui renvoie des photos contenant un seul mot clé donné. Juste un. Disons, toutes les photos ne contenant que le mot-clé "foo", pas d'autres mots-clés.

La seule solution que j'ai trouvée était:

  1. créer une collection intelligente qui renvoie des photos contenant ce mot-clé donné "foo",
  2. sélectionnez toutes les photos et ajoutez-les à une autre collection (dites «temp») pour la sauvegarde,
  3. supprimez le mot-clé "foo" des photos,
  4. créer une collection intelligente qui renvoie les contenant des photos sans mots - clés : cela devrait retourner toutes les photos qui n'avaient le « foo » mot - clé avant je l' ai enlevé à l'étape précédente. Malheureusement, toutes les photos qui n'avaient pas de mots-clés avant l' étape 3 seront également retournées, mais ça va, je n'ai pas de telles photos.
  5. faire quelque chose avec les photos retournées par l'étape 4, puis aller dans la collection 'temp' et rajouter le mot clé 'foo'.

Fastidieux.


1
Je suis désolé, je n'ai pas de réponse, je veux juste dire que je souhaite que plus d'outils acceptent le vrai SQL comme langage de requête;)
gerikson

J'ai creusé la tête, mais je n'arrive pas à trouver un moyen de le faire; la syntaxe de filtrage semble trop limitée. : - \
Craig Walker

Plus de fouilles: Il semble que dans LR3 il n'y a aucun moyen de filtrer "contient des balises qui ne sont pas X"; vous ne pouvez faire que "ne contient pas de tag X". Sans le premier, il n'y a aucun moyen de réaliser ce que vous recherchez.
Craig Walker

Il y a aussi la fonctionnalité manquante évidente, "mot-clé est égal à X" - vous pouvez trouver des mots-clés contenant X, mais si vous avez des mots-clés "arachide" et "beurre d'arachide", vous ne pouvez pas trouver uniquement la correspondance exacte "arachide".
Jason S

Merci les gars, oui, je suis arrivé aux mêmes conclusions jusqu'à présent, mais j'ai pensé que je demanderais toujours sur photo.se, au cas où j'aurais vraiment raté un tour de ninja. Je vais devoir écrire un plugin dans mon temps libre :)
sebastien.b

Réponses:


7

@gerikson:

Je suis désolé, je n'ai pas de réponse, je veux juste dire que je souhaite que plus d'outils acceptent le vrai SQL comme langage de requête;)

Mais techniquement, vous pouvez le faire. Le catalogue Lightroom est une base de données SQLite - essayez de le parcourir avec le module complémentaire SQLite Manager de Firefox , et vous verrez que c'est assez simple.

Vous pouvez le faire dans Lua en écrivant une extension - hélas, je n'ai pas franchi cette étape, donc je ne sais pas comment le faire.

Si vous n'avez pas besoin qu'il s'agisse d'une collection à mise à jour automatique comme le fonctionnement des collections intelligentes, mais que vous pouvez plutôt gérer l'exécution d'un script de temps en temps, vous pouvez écrire un outil externe pour interroger la base de données SQLite comme vous le souhaitez, et créez un fichier xml de collection intelligente incluant explicitement les photos en question et importez-le dans Lightroom. (Je devais faire ce dernier morceau moi-même - voir cette question )


Je viens d'essayer cette requête de sélection et cela fonctionne très bien:

 SELECT 
    img.id_local AS imageID, 
    kwdef.name AS keyword,
    img.rootFile AS fileID,
    files.originalFilename 
 FROM AgLibraryKeywordImage kwimg
 JOIN Adobe_images img
    ON img.id_local = kwimg.image
 JOIN AgLibraryFile files 
    ON img.rootFile = files.id_local
 JOIN AgLibraryKeyword kwdef
    ON kwdef.id_local = kwimg.tag
 GROUP BY kwimg.image
    HAVING COUNT(*)=1
      AND kwdef.name = ?

où vous devez soit remplacer le? avec un nom de mot clé (par exemple 'foo') ou exécuter comme une instruction préparée. La GROUP BYclause fait la magie: elle regroupe les résultats par image, HAVING COUNT(*)=1dit à SQL de limiter sa sortie aux images ayant 1 enregistrement.

Cette requête ne fonctionnera probablement pas très bien pour les images qui ont des piles, auquel cas elle doit être modifiée pour garantir que tous les JOINs sont un à un (sauf pour la table de mots-clés d'image)


Oui, vous pouvez le faire, même si je dirais que les étapes que j'ai décrites dans mes questions sont probablement plus simples, non? Merci.
sebastien.b

plus simple mais manuel. J'ai une rancune contre les logiciels informatiques qui m'oblige à exécuter à plusieurs reprises des efforts qu'il pourrait faire automatiquement.
Jason S

3

J'ai essayé ceci, dans LR 4: le mot-clé contient "mykeyword" ET le mot-clé ne contient pas "abcdfghijklnpqstuvxz"

où la 2ème chaîne est composée de toutes les lettres NON présentes dans "mykeyword"

pas parfait, mais c'est un hack rapide et sale qui fonctionne surtout.


C'était la moins mauvaise option pour moi. J'ai dû mettre des espaces entre les lettres de l'alphabet pour que cela fonctionne.
alx9r

1

tout. J'ai trouvé un moyen de le faire. Pas élégant, mais ça marche plutôt bien.

Tout d'abord, accédez à Toutes les photos dans votre catalogue et sélectionnez toutes vos photos. Dans le volet droit, sous Mots-clés, vous verrez une zone de texte sous Mots-clés avec TOUS les mots-clés trouvés (la plupart suivis d'un astérisque). Copiez tout ce texte et collez-le dans un éditeur de texte.

Maintenant, supprimez tous les astérisques (j'utilise find / replace pour simplifier cela), ainsi que le ou les mots-clés auxquels vous souhaitez limiter votre recherche. Une fois terminé, copiez tout le texte restant.

Maintenant, créez une collection intelligente. Ajoutez une règle pour "Mot clé" "Contient" "Un ou plusieurs mots clés que vous souhaitez rechercher".

Ensuite, ajoutez une règle pour "Mot clé" "Ne contient pas" et collez le texte modifié. Voila. Adobe aurait vraiment dû y réfléchir, mais c'est Adobe ...


ick. Vous devez ensuite modifier cette collection intelligente à chaque fois que vous ajoutez un nouveau mot clé. :(
cabbey

Intéressant, malheureusement ne fonctionne pas pour moi, j'ai un grand nombre de mots clés. Les copier et les coller dans un éditeur de texte et enregistrer le fichier conduit à un monstre de 45 Ko . Cela fait beaucoup de mots clés. Lightroom ne me laisse pas entrer tous en tant que règle de collecte intelligente. Idée intéressante cependant, merci.
sebastien.b

0

En théorie, vous devriez pouvoir le faire avec les filtres "commence par" et "se termine par". Construisez-le essentiellement comme:

matches ALL  
keyword  starts with  YourOneKeyWord  
keyword  ends with    YourOneKeyWord

Mais cela ne semble pas fonctionner. :(


Oui, j'avais essayé ça, sans travailler.
sebastien.b

J'ai envoyé un ping à quelqu'un de l'équipe LR, nous verrons s'ils s'arrêtent avec sagesse pour nous.
cabbey

THX. J'aurais tellement de questions à poser à n'importe qui dans l'équipe LR :) Le service de publication Flickr me rend dingue.
sebastien.b

cela fonctionne-t-il maintenant avec lightroom 3.4? j'ai mis en place une collection intelligente en utilisant "commence par" et "se termine par" "flickr", et il ne renvoie que ces photos avec exactement "flickr", à l'exception d'une photo que j'avais avec le mot-clé factice "flickrzzz".
rapscalli

non, même avec LR 3.5, cela échoue toujours. Je ne sais pas trop comment, mais la définition d'Adobe de "beginWith" ne semble pas correspondre à celle que la plupart des gens utiliseraient.
cabbey
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.