Как я могу создать умную коллекцию, которая проверяет только одно ключевое слово в Lightroom 3? - Фотопедия
8 голосов
/ 16 января 2011

Мне кажется, я хорошо знаю свой Lightroom, но я не смог найти способ создать умную коллекцию, которая возвращает фотографии, содержащие только одно заданное ключевое слово. Только один. Например, все фотографии, содержащие только ключевое слово 'foo', других ключевых слов нет.

Единственное решение, которое я нашел, было:

  1. создать умную коллекцию, которая возвращает фотографии, содержащие данное ключевое слово 'foo',
  2. выбрать все фотографии и добавить их в другую коллекцию (скажем, 'temp') для резервного копирования,
  3. удалить данное ключевое слово 'foo' из фотографий,
  4. создать умную коллекцию, которая возвращает фотографии, содержащие без ключевых слов : здесь должны быть возвращены все фотографии, у которых только имели ключевое слово 'foo', прежде чем я удалил его на предыдущем шаге. К сожалению, все фотографии, у которых не было ключевых слов до шага 3, также будут возвращены, но это нормально, у меня нет таких фотографий.
  5. сделайте что-нибудь с фотографиями, возвращенными на шаге 4, затем перейдите в коллекцию 'temp' и добавьте ключевое слово 'foo' назад.

утомительный.

Ответы [ 4 ]

7 голосов
/ 16 января 2011

@ gerikson:

Извините, у меня нет ответа, я просто хочу сказать, что я хочу, чтобы больше инструментов приняли настоящий SQL в качестве языка запросов;)

Но технически вы можете сделать это. Каталог Lightroom представляет собой базу данных SQLite - попробуйте просмотреть его с помощью дополнения SQLite Manager в Firefox , и вы увидите, что это довольно просто.

Вы можете сделать это в Lua, написав расширение - увы, я не прошел этот шаг, поэтому я не уверен, как это сделать.

Если вам не нужно, чтобы это была самообновляющаяся коллекция, как работают интеллектуальные коллекции, а вам скорее нужно время от времени запускать скрипт, вы можете написать внешний инструмент для запроса базы данных SQLite так, как вы это делаете. хотите, и создайте xml-файл умной коллекции, явно содержащий конкретные фотографии, и импортируйте его в Lightroom. (Мне нужно было сделать последний бит сам - см. этот вопрос )


Я только что попробовал этот запрос выбора, и он прекрасно работает:

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

где вы должны либо заменить? с именем ключевого слова (например, 'foo') или выполнить как подготовленный оператор. Предложение GROUP BY делает волшебство: это группирует результаты по изображениям, HAVING COUNT(*)=1 говорит SQL ограничивать его вывод изображениями, имеющими 1 запись.

Этот запрос, вероятно, не будет работать правильно для изображений со стопками, и в этом случае его необходимо изменить, чтобы все JOIN были однозначными (за исключением таблицы ключевое слово-изображение)

3 голосов
/ 05 октября 2012

Я попробовал это в LR 4: Ключевое слово содержит "mykeyword" А ТАКЖЕ Ключевое слово не содержит "abcdfghijklnpqstuvxz"

где 2-я строка - это все буквы НЕ в "mykeyword"

не идеально, но это быстрый и грязный хак, который в основном работает.

1 голос
/ 21 января 2011

все. Я нашел способ сделать это. Не элегантно, но работает довольно хорошо.

Сначала перейдите на Все фотографии в вашем каталоге и выберите все свои фотографии. На правой панели, под Keywording, вы увидите текстовое поле под Keyword Tags со всеми найденными ключевыми словами (за большинством следует звездочка). Скопируйте весь этот текст и вставьте его в текстовый редактор.

Теперь удалите все звездочки (я использую поиск / замену, чтобы упростить это), а также ключевые слова, которыми вы хотите ограничить свой поиск. После завершения скопируйте весь оставшийся текст.

Теперь создайте умную коллекцию. Добавьте правило для «Ключевого слова» «Содержит» «Одно или несколько ключевых слов, которые вы хотите найти».

Далее добавьте правило для «Ключевое слово» «Не содержит» и вставьте отредактированный текст. Вуаля. Adobe действительно должна была обдумать это, но это Adobe ...

0 голосов
/ 21 января 2011

Теоретически вы должны быть в состоянии сделать это с фильтрами «начинается с» и «заканчивается». По сути, постройте его так:

matches ALL  
keyword  starts with  YourOneKeyWord  
keyword  ends with    YourOneKeyWord

Но, похоже, это не работает. (

...