¿Cómo puedo crear una colección inteligente que verifique solo * una * palabra clave dada en Lightroom 3?

8

Creo que conozco bastante bien mi Lightroom, pero no pude encontrar una manera de crear una colección inteligente que devuelva fotos que contengan solo una palabra clave determinada. Solo uno. Digamos, todas las fotos que contienen solo la palabra clave 'foo', no otras palabras clave.

La única solución que encontré fue:

  1. crear una colección inteligente que devuelva fotos que contengan esa palabra clave dada 'foo',
  2. seleccione todas las fotos y agréguelas a otra colección (diga 'temp') para hacer una copia de seguridad,
  3. eliminar la palabra clave dada 'foo' de las fotos,
  4. cree una colección inteligente que devuelva las fotos que no contengan palabras clave : esto debería devolver todas las fotos que solo tenían la palabra clave 'foo' antes de eliminarla en el paso anterior. Lamentablemente, todas las fotos que no tenían palabras clave antes del paso 3 también se devolverán, pero está bien, no tengo esas fotos.
  5. haga algo con las fotos devueltas en el paso 4, luego vaya a la colección 'temp' y agregue la palabra clave 'foo' nuevamente.

Tedioso.

sebastien.b
fuente
1
Lo siento, no tengo una respuesta, solo quiero decir que deseo que más herramientas acepten SQL real como lenguaje de consulta;)
gerikson
Me arranqué el cerebro pero no puedo encontrar una manera de hacer esto; La sintaxis de filtrado parece demasiado limitada. : - \
Craig Walker
Más excavación: parece que en LR3 no hay forma de filtrar "contiene etiquetas que no son X"; solo puede hacer "no contiene la etiqueta X". Sin el primero, no hay forma de lograr lo que estás buscando.
Craig Walker
También está la funcionalidad obvia que falta, "la palabra clave es igual a X": puede encontrar palabras clave que contengan X, pero si tiene las palabras clave "maní" y "mantequilla de maní", no puede encontrar solo la coincidencia exacta "maní".
Jason S
Gracias chicos, sí, llegué a las mismas conclusiones hasta el momento, pero pensé que aún preguntaría en photo.se, en caso de que realmente me perdiera un truco ninja. Tendré que escribir un complemento en mi tiempo libre :)
sebastien.b

Respuestas:

7

@gerikson:

Lo siento, no tengo una respuesta, solo quiero decir que deseo que más herramientas acepten SQL real como lenguaje de consulta;)

Sin embargo, técnicamente se puede hacer esto. El catálogo de Lightroom es una base de datos SQLite: intente navegar con el complemento SQLite Manager de Firefox , y verá que es bastante simple.

Podrías hacer esto en Lua escribiendo una extensión; por desgracia, no he seguido ese paso, así que no estoy seguro de cómo hacerlo.

Si no necesita que sea una colección de actualización automática de la forma en que funcionan las colecciones inteligentes, sino que puede lidiar con la ejecución de un script de vez en cuando, puede escribir una herramienta externa para consultar la base de datos SQLite de la manera que desee, y cree un archivo xml de colección inteligente que incluya explícitamente las fotos particulares en cuestión e impórtelo en Lightroom. (Necesitaba hacer esto último, vea esta pregunta )


Acabo de probar esta consulta de selección y funciona muy 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 = ?

donde deberías reemplazar el? con un nombre de palabra clave (por ejemplo 'foo') o ejecutar como una declaración preparada. La GROUP BYcláusula hace la magia: esto agrupa los resultados por imagen, HAVING COUNT(*)=1le dice a SQL que limite su salida a imágenes que tienen 1 registro.

Es probable que esta consulta no funcione del todo bien para las imágenes que tienen pilas, en cuyo caso debe modificarse para garantizar que todos los JOINmensajes sean uno a uno (excepto la tabla de palabras clave-imagen)

Jason S
fuente
Sí, puede hacerlo, aunque diría que los pasos que describí en mis preguntas son probablemente más simples, ¿verdad? Gracias.
sebastien.b
Más simple pero manual. Tengo un rencor contra el software de la computadora que me obliga a ejecutar repetidamente los esfuerzos que podría hacer automáticamente.
Jason S
3

Intenté esto, en LR 4: la palabra clave contiene "mykeyword" Y la palabra clave no contiene "abcdfghijklnpqstuvxz"

donde la segunda cadena son todas las letras que NO están en "mykeyword"

no es perfecto, pero es un truco rápido y sucio que funciona principalmente.

Richard Soenneker
fuente
Esta fue la peor opción para mí. Tuve que poner espacios entre las letras del alfabeto para que esto funcione.
alx9r
1

todas. He encontrado una manera de hacer esto. No es elegante, pero funciona bastante bien.

Primero, vaya a Todas las fotografías en su catálogo y seleccione todas sus fotos. En el panel derecho, debajo de Palabras clave, verá un cuadro de texto debajo de Etiquetas de palabras clave con TODAS las palabras clave encontradas (la mayoría seguidas de un asterisco). Copie todo este texto y péguelo en un editor de texto.

Ahora, elimine todos los asteriscos (uso buscar / reemplazar para simplificar esto), así como las palabras clave a las que desea limitar su búsqueda. Una vez terminado, copie todo el texto restante.

Ahora, crea una colección inteligente. Agregue una regla para "Palabra clave" "Contiene" "Palabra clave única o múltiple que desea buscar".

A continuación, agregue una regla para "Palabra clave" "No contiene" y pegue el texto editado. Voila Adobe realmente debería haber pensado en esto, pero es Adobe ...

Parrish
fuente
ick Y luego tiene que editar esa colección inteligente cada vez que agrega una nueva palabra clave. :(
cabbey
Interesante, desafortunadamente no funciona para mí, tengo una gran cantidad de palabras clave. Copiarlos y pegarlos en un editor de texto y guardar el archivo lleva a un monstruo de 45 Kb . Esas son muchas palabras clave. Lightroom no me deja ingresarlos a todos como una regla de recolección inteligente Una idea interesante, gracias.
sebastien.b
0

En teoría, debería poder hacer esto con los filtros "comienza con" y "termina con". Básicamente construirlo como:

matches ALL  
keyword  starts with  YourOneKeyWord  
keyword  ends with    YourOneKeyWord

Pero eso no parece estar funcionando. :(

cabbey
fuente
Sí, lo había intentado, no funcionaba.
sebastien.b
Puse a alguien en el equipo de LR, veremos si se detienen con alguna sabiduría para nosotros.
cabbey
Gracias. Le haría muchísimas preguntas a cualquiera en el equipo de LR :) El servicio de publicación de Flickr me vuelve loco.
sebastien.b
¿Funciona esto ahora con lightroom 3.4? He configurado una colección inteligente usando "comienza con" y "termina con" "flickr", y está devolviendo solo aquellas fotos con exactamente "flickr", excluyendo una foto que tenía con la palabra clave falsa "flickrzzz".
rapscalli
no, incluso con LR 3.5 esto todavía falla. No estoy seguro de cómo, pero la definición de Adobe de "comienza con" no parece coincidir con la que la mayoría de la gente usaría.
Cabbey