On 1/12/18 3:29 AM, Heiko Bauke wrote:
At the moment, one can collect images by specific criteria. Some of
these criteria can be expressed by numerical values, e.g., focal
length or ISO. It would be nice if one could collect not only images
taken at a specific ISO, let's say, but also taken at an ISO
larger/greater than a specific given value.
In a next step one could add the possibility to collect images of a
width/height larger/smaller than a specific value. The possibility
to collect images of a particular size only would not be powerful
enough for most use cases. There are too many possible sizes.
A really, really good solution to this would be to dump all available
image metadata into a full-text indexer and allow the user to filter
using queries. Done right, it gives users immense flexibility and
saves having to write and maintain application-specific filtering
infrastructure.
A solution like that would be really, really great.
With that one can also filter eg. for locations in a very powerful way.
1. Is there an elevation recorded (to tell, if it is geotagged by map or
by recordings from a device)?
2. Locations "bigger" than ... which means east of ...
That's something I'm missing already a long time.
Would be perfect to have such possibilities of filtering.
Reiner
I've used Lucene to do similar things on several projects over the
last 15 years, some indexing tens of millions of records, with a great
deal of success. It's fast, reasonably lightweight, solid, makes a
very small index relative to the corpus if you're not using it as a
document store and has a query language that can't be beat. Lucene
supports fields, which would allow search on specific attributes in
addition to free-form, Google-style queries. For example, a query to
pull images taken with a Nikon at ISOs up to 1000 taken during 2017,
have five stars, contain the word "green" (maybe as a result of having
the green label applied) and not containing the word "wedding"
anywhere would look like this:
maker:nikon iso:[0 TO 1000] createdate:[20170101 TO 20171231]
stars:5 green -wedding
The down side is that Lucene is written in Java, and I'm pretty sure
the last thing anyone wants to do is try to integrate it directly with
DT. There are ports to other languages (including C++, which could be
wrapped in C) that are binary-compatible with the Java version's
indexes and, of course, other indexers that could be considered. It
would also be possible to integrate with an external program that
takes insertions, updates, deletions and queries from DT and returns
results via a pipe or socket. The presence or absence of the program
could be used a switch for whether or not DT enables its indexing
features.
I don't have the spare cycles to take on the complete project, but I
would be more than happy to provide guidance on how to organize the
index, evaluate indexing software and do enough at-the-edges
integration work to make the indexing work easy to incorporate into DT.
--Mark
___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to
darktable-dev+unsubscr...@lists.darktable.org
___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org