Como criar uma coleção inteligente que verifique apenas * uma * palavra-chave fornecida no Lightroom 3?

8

Acho que conheço meu Lightroom muito bem, mas não consegui encontrar uma maneira de criar uma coleção inteligente que retorne fotos contendo apenas uma palavra-chave. Apenas um. Digamos, todas as fotos que contêm apenas a palavra-chave 'foo', nenhuma outra palavra-chave.

A única solução que encontrei foi:

  1. crie uma coleção inteligente que retorne fotos contendo a palavra-chave "foo",
  2. selecione todas as fotos e adicione-as a outra coleção (por exemplo, 'temp') para backup,
  3. remova a palavra-chave especificada 'foo' das fotos,
  4. crie uma coleção inteligente que retorne as fotos que não contêm palavras - chave : isso deve retornar todas as fotos que tinham apenas a palavra-chave 'foo' antes de removê-la na etapa anterior. Infelizmente, todas as fotos que não tinham palavras-chave antes da etapa 3 também serão retornadas, mas tudo bem, não tenho essas fotos.
  5. faça algo com as fotos retornadas na etapa 4, vá para a coleção 'temp' e adicione a palavra-chave 'foo' novamente.

Tedioso.

sebastien.b
fonte
11
Sinto muito, eu não tenho uma resposta, eu só quero dizer que eu desejo aceita mais ferramentas SQL real como uma linguagem de consulta;)
gerikson
Eu destruí meu cérebro, mas não consigo descobrir uma maneira de fazer isso; a sintaxe de filtragem parece muito limitada. : - \
Craig Walker
Mais informações: parece que no LR3 não há como filtrar "contém tags que não são X"; você só pode fazer "não contém a tag X". Sem o primeiro, não há como alcançar o que você está procurando.
Craig Walker
Além disso, existe a óbvia funcionalidade ausente, "keyword is X" - você pode encontrar palavras-chave que contenham X, mas se você tiver as palavras-chave "amendoim" e "manteiga de amendoim", não poderá encontrar apenas a correspondência exata "amendoim".
Jason S
Obrigado pessoal, sim, cheguei às mesmas conclusões até agora, mas achei que ainda perguntaria no photo.se, caso realmente perdesse um truque ninja. Vou ter que escrever um plugin no meu tempo livre :)
sebastien.b

Respostas:

7

@gerikson:

Sinto muito, não tenho uma resposta, só quero dizer que desejo que mais ferramentas sejam aceitas como SQL de verdade como linguagem de consulta;)

Mas tecnicamente você pode fazer isso. O catálogo do Lightroom é um banco de dados SQLite - tente navegá-lo com o complemento SQLite Manager do Firefox e você verá que é bem simples.

Você pode fazer isso em Lua escrevendo uma extensão - infelizmente, eu não passei por essa etapa, então não tenho certeza de como fazê-lo.

Se você não precisar que seja uma coleção de atualização automática da maneira como as coleções inteligentes funcionam, mas sim lidar com a execução de um script de vez em quando, crie uma ferramenta externa para consultar o banco de dados SQLite da maneira que desejar e crie um arquivo xml de coleção inteligente explicitamente incluindo as fotos específicas em questão e importe-o para o Lightroom. (Eu mesmo precisei fazer isso por último - veja esta pergunta )


Eu apenas tentei essa consulta de seleção e funciona muito bem:

 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 = ?

onde você deve substituir o? com um nome de palavra-chave (por exemplo 'foo') ou execute como uma instrução preparada. A GROUP BYcláusula faz a mágica: isso agrupa os resultados por imagem, HAVING COUNT(*)=1diz ao SQL para limitar sua saída a imagens com 1 registro.

Essa consulta provavelmente não funcionará corretamente para imagens que têm pilhas. Nesse caso, ela precisa ser modificada para garantir que todos os JOINitens sejam um por um (exceto para a tabela de palavras-chave-imagem)

Jason S
fonte
Sim, você pode fazer isso, embora eu diria que as etapas que descrevi nas minhas perguntas são provavelmente mais simples, certo? Obrigado.
sebastien.b 22/01
mais simples, mas manual. Tenho um rancor em execução contra o software de computador que me obriga a executar repetidamente os esforços que ele poderia fazer automaticamente.
Jason S
3

Eu tentei isso no LR 4: a palavra-chave contém "mykeyword" E a palavra-chave não contém "abcdfghijklnpqstuvxz"

onde a segunda string está com todas as letras NOT em "mykeyword"

não é perfeito, mas é um hack rápido e sujo que funciona principalmente.

Richard Soenneker
fonte
Esta foi a pior opção para mim. Eu tive que colocar espaços entre as letras do alfabeto para que isso funcionasse.
Alx9r 12/10
1

todos. Eu encontrei uma maneira de fazer isso. Não é elegante, mas funciona muito bem.

Primeiro, vá para Todas as fotografias em seu catálogo e selecione todas as suas fotos. No painel direito, em Palavras-chave, você verá uma caixa de texto abaixo de Tags de palavras-chave com TODAS as palavras-chave encontradas (a maioria seguida por um asterisco). Copie todo esse texto e cole-o em um editor de texto.

Agora, remova todos os asteriscos (eu uso localizar / substituir para simplificar isso), bem como as palavras-chave às quais você deseja limitar sua pesquisa. Quando terminar, copie todo o texto restante.

Agora, crie uma coleção inteligente. Adicione uma regra para "Palavra-chave" "Contém" "Palavras-chave únicas ou múltiplas que você deseja pesquisar".

Em seguida, adicione uma regra para "Palavra-chave" "Não contém" e cole o texto editado. Voila. A Adobe realmente deveria ter pensado nisso, mas é a Adobe ...

Parrish
fonte
ick. E, em seguida, edite essa coleção inteligente toda vez que você adicionar uma nova palavra-chave. :(
cabbey
Interessante, infelizmente, não funciona para mim, tenho um grande número de palavras-chave. Copiá-los e colá-los em um editor de texto e salvar o arquivo leva a um monstro de 45 Kb . São muitas palavras-chave. O Lightroom não me permite inserir todos eles como uma regra de coleção inteligente. Idéia interessante, porém, thx.
sebastien.b
0

Em teoria, você deve conseguir fazer isso com os filtros "começa com" e "termina com". Construa-o basicamente como:

matches ALL  
keyword  starts with  YourOneKeyWord  
keyword  ends with    YourOneKeyWord

Mas isso não parece estar funcionando. :(

cabbey
fonte
Sim, eu tentei isso, não funcionando.
sebastien.b 22/01
Liguei para alguém da equipe de LR e veremos se eles aparecem com alguma sabedoria para nós.
Cabbey
Valeu. Eu teria muuuuuito muitas perguntas para qualquer pessoa da equipe LR :) O serviço de publicação do Flickr me deixa louco.
precisa saber é o seguinte
isso funciona agora com o lightroom 3.4? eu configurei uma coleção inteligente usando "começa com" e "termina com" "flickr", e está retornando apenas as fotos com exatamente "flickr", excluindo uma foto que eu tive com a palavra-chave fictícia "flickrzzz".
rapscalli
não, mesmo com o LR 3.5, isso ainda falha. Não sei como, mas a definição de "beginWith" da Adobe parece não corresponder à que a maioria das pessoas usaria.
cabbey