Lightroom 3で指定されたキーワードを1つだけチェックするスマートコレクションを作成するにはどうすればよいですか?


8

Lightroomはよく知っていると思いますが、特定のキーワードを1つだけ含む写真を返すスマートコレクションを作成する方法が見つかりませんでした。一つだけです。たとえば、すべての写真に「foo」キーワードのみが含まれ、他のキーワードは含まれていないとします。

私が見つけた唯一の解決策は:

  1. 指定されたキーワード「foo」を含む写真を返すスマートコレクションを作成します。
  2. すべての写真を選択し、バックアップ用に別のコレクション(たとえば「temp」)に追加します。
  3. 写真から与えられたキーワード「foo」を削除し、
  4. キーワードを含まない写真を返すスマートコレクションを作成します。これにより、前の手順で削除する前に「foo」キーワードだけがあったすべての写真が返されます。残念ながら、手順3の前にキーワードがなかったすべての写真も返されますが、そのような写真はありません。
  5. 手順4で返された写真を使用して何かを行い、「temp」コレクションに移動して「foo」キーワードを追加します。

退屈。


1
申し訳ありませんが、答えはありません。実際のSQLをクエリ言語として受け入れられるツールが他にもあるといいのですが;)
gerikson

私は頭を悩ませましたが、これを行う方法がわかりません。フィルタリング構文が制限されているようです。:-\
Craig Walker

さらに掘り下げる:LR3では、「X以外のタグを含む」をフィルターする方法がないようです。「タグXを含まない」しか実行できません。前者がなければ、あなたが探しているものを達成する方法はありません。
Craig Walker、

また、「keyword equals X」という機能がないことも明らかです。Xを含むキーワードは検索できますが、「peanut」と「peanut butter」というキーワードがある場合、完全に一致する「peanut」だけを見つけることはできません。
Jason S

みんなありがとう、はい、私はこれまでに同じ結論に達しましたが、私が本当に忍者のトリックを逃した場合に備えて、私はまだphoto.seに尋ねると思っていました。暇なときにプラグインを作成する必要があります:)
sebastien.b '17年

回答:


7

@gerikson:

申し訳ありませんが、答えはありません。実際のSQLをクエリ言語として受け入れられるツールがもっとあればよいのですが;)

しかし、技術的にはこれ行うことができます。LightroomカタログはSQLiteデータベースです。FirefoxSQLite Managerアドオンで閲覧してみてください。とてもシンプルです。

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(*)=11つのレコードを持つ画像に出力を制限するために、SQLに指示します。

このクエリは、スタックのある画像ではおそらく正しく機能しません。その場合、すべてJOINのが1対1 になるように変更する必要があります(keyword-imageテーブルを除く)


はい、それは可能ですが、私の質問で説明した手順はおそらくもっと簡単ですよね?ありがとう。
sebastien.b 2011年

シンプルですが手動です。私は、コンピューターソフトウェアに対して自動的に実行できる作業を繰り返し実行することを強いられる恨みを抱えています。
Jason S

3

LR 4でこれを試しました。キーワードに「mykeyword」が含まれていて、かつキーワードに「abcdfghijklnpqstuvxz」が含まれていない

ここで、2番目の文字列は「mykeyword」にないすべての文字です

完璧ではありませんが、ほとんどの場合機能するのは迅速で汚いハックです。


これは私にとって最悪の選択肢でした。これを機能させるには、アルファベット文字の間にスペースを入れる必要がありました。
alx9r 2015年

1

すべて。これを行う方法を見つけました。エレガントではありませんが、非常にうまく機能します。

まず、カタログの[すべての写真]に移動し、すべての写真を選択します。右側のペインの[キーワード]の下にある[キーワードタグ]の下に、すべてのキーワードが検出されたテキストボックスが表示されます(ほとんどの後にアスタリスクが続きます)。このテキストをすべてコピーして、テキストエディターに貼り付けます。

次に、すべてのアスタリスク(これを単純化するために検索/置換を使用します)と、検索を制限するキーワードを削除します。終了したら、残りのすべてのテキストをコピーします。

次に、スマートコレクションを作成します。「キーワード」「含む」「検索する単一または複数のキーワード」のルールを追加します。

次に、「キーワード」「含まない」のルールを追加し、編集したテキストを貼り付けます。出来上がり。アドビはこれを本当に考えるべきでしたが、それはアドビです...


病気。そして、新しいキーワードを追加するたびに、そのスマートコレクションを編集する必要があります。:(
cabbey

興味深いことに、残念ながら私にはうまくいきません。私には膨大な数のキーワードがあります。それらをテキストエディタにコピーして貼り付け、ファイルを保存すると、45 Kbの怪物になります。それはたくさんのキーワードです。Lightroomでは、これらすべてをスマートコレクションルールとして入力できません。興味深いアイデアですが、thx。
sebastien.b 2011年

0

理論的には、「で始まる」フィルタと「で終わる」フィルタを使用してこれを行うことができるはずです。基本的に次のようにビルドします。

matches ALL  
keyword  starts with  YourOneKeyWord  
keyword  ends with    YourOneKeyWord

しかし、それはうまくいっていないようです。:(


はい、私はそれを試しました、働いていませんでした。
sebastien.b 2011年

私はLRチームの誰かにpingを送信しました。彼らが私たちの知恵で立ち寄るかどうかを確認します。
cabbey

THX。私はLRチームの誰にでも大いに多くの質問をするでしょう:) Flickr Publishサービスは私を狂わせます。
sebastien.b 2011年

これは今、lightroom 3.4で動作しますか?「次で始まる」と「次で終わる」「flickr」を使用してスマートコレクションをセットアップしました。ダミーキーワード「flickrzzz」を使用していた写真を除いて、正確に「flickr」を含む写真のみが返されます。
rapscalli、2011年

いいえ、LR 3.5を使用しても、これはまだ失敗します。方法はわかりませんが、Adobeの「beginsWith」の定義は、ほとんどの人が使用するものと一致していないようです。
cabbey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.