I have been developing a keyword hierarchy whilst keywording my 10,000 photos in Lightroom 4. So, it's grown and developed as I have gone along - with an increasing use of hierarchy based keywording.

I now want to go backwards and add extra keywords to some photos. For instance, when I started off I just used 'Bird'. Then I started putting in more specific keywords within/below the parent, such as 'Chaffinch>Bird'.

So, I've now got loads of bird photos which are properly classified by species, but loads just tagged with 'Bird'. I want to quickly select all the ones that haven't yet been given a species, and add this. However - whichever way I try selecting 'Bird' I get all of them - whether they've also been tagged with a lower level keyword or not.

How can I select just the ones without lower level tagging? The system obviously recognises them as different - because the numbers to the right of the keyword indicate this.

  • 4
    \$\begingroup\$ Could you give some more details on exactly which system you're using? This is going to be very software-specific. \$\endgroup\$
    – Philip Kendall
    Oct 6, 2013 at 18:34
  • \$\begingroup\$ Hi Philip. Sorry about that - it's Lightroom 4. Cheers \$\endgroup\$
    – Bodian
    Oct 7, 2013 at 18:41
  • \$\begingroup\$ To my knowledge there still isn't a true "exclusive keyword" search in Lightroom. You can use the Text search tool to to a "keywords exclusive of" search, where you explicitly filter out unwanted keywords, but this is unlikely to solve your specific problem if you've used hierarchical keywording extensively. \$\endgroup\$
    – jrista
    Oct 7, 2013 at 22:38

2 Answers 2


There's an obscure built-in method to find images that have a parent keyword explicitly applied (rather than implicitly via the hierarchy). In the Library Filter Bar Metadata browser, add a Keyword column, change its view from Hierarchical to Flat, then tediously scroll until you find the desired parent keyword. Clicking on that keyword will then show just the photos that have it explicitly assigned. See here for screenshots:


  • \$\begingroup\$ Brilliant - thanks for this, it does exactly what I was after, and I don't have too many to make it too tedious. \$\endgroup\$
    – Bodian
    Oct 14, 2013 at 10:09

I define Smart Collections to deal with situations like this. For your specific example, you need just two rules:

Keywords > Contains Words > bird
Keywords > Contains Words > !chaffinch !kiwi !robin

Just list as many "leaf" keywords as you have.

If you're wondering why I've used ! to negate the keywords instead of Lightroom's less cryptic match negation options, there are a couple of reasons, each based on the problems with the alternatives:

  • You can Alt/Option click the + in the Smart Collection dialog to create a rule group, then set it to "None", then add a single "Keywords > Contains Words" rule for each species. This works no better than the above method, and takes a lot more work.

  • You can instead replace the second rule above with a "Keywords > Doesn't Contain" rule, but notice that there is no "Doesn't Contain Words". This can be a problem with shorter keyword names in a big hierarchy, since you can end up matching incorrect partial keywords: wren also matches wrench and Lawrence.

If the collection initially contains more photos than you want to deal with, put a time limit on it:

Edit Time > Is In the Last > 1 week

Adjust the limit to taste.

You might also restrict it to top-rated photos at first, then gradually relax the rating rule to bring more and more photos under control.

Once you have several of these Smart Collections, you will notice Lightroom start to bog down. The solution is to put these collections into a Collection Set and keep it folded up. Lightroom only recomputes Smart Collection contents while the collection is visible. After a long session of tagging things, I quit Lightroom, re-open it, and open up my Collection Sets one by one, then deal with any photos that fall into these QA collections, indicating some problem with the keywording.

Another useful tool here is John Ellis' Any Filter. One of its many search features lets you find photos with an exact keyword, not counting those merely inherited from a parent higher up the hierarchy. It's useful, but imperfect:

  • The biggest problem with Any Filter is that, unlike Smart Collections, it has to be run on demand due to a limitation in the Lightroom SDK. Its results don't update dynamically as you apply, remove, and change keywords.

  • Another annoyance is that each individual photo can only have one Any Filter flag on it at a time, so if a given photo matches multiple passes of Any Filter, the second pass will overwrite the flag marking it as part of the first group. Thus, you want to use this plugin only to select some photos, then immediately do something with them. If you can't do that, you will at least have to stash them in a "dumb" collection for later processing.

  • \$\begingroup\$ Thanks - I'll use this method when it's easier than the other one - which it will be on occasions. \$\endgroup\$
    – Bodian
    Oct 14, 2013 at 10:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.