During indexing, it is possible to import metadata for each file by executing commands. This allows, for example, extracting tag data from an external application and storing it in a field for indexing.
See the
section about
the metadatacmds
field in the main configuration chapter for a
description of the configuration syntax.
For example, if you would want Recoll to use tags managed by
tmsu in a field named
tags
, you would add the following to the
configuration file:
[/some/area/of/the/fs]
metadatacmds = ; tags
= tmsu tags %f
Note
Depending on the tmsu version,
you may need/want to add options like
--database=/some/db
.
You may want to restrict this processing to a subset of
the directory tree, because it may slow down indexing a bit
([some/area/of/the/fs]
).
Note the initial semi-colon after the equal sign.
In the example above, the output of tmsu is
used to set a field named tags
. The field
name is arbitrary and could be tmsu
or
myfield
just the same, but
tags
is an alias for the standard Recoll
keywords
field, and the tmsu
output will just augment its contents. This will avoid the need to
extend the field
configuration.
Once re-indexing is performed (you will need to force the file reindexing, Recoll will
not detect the need by itself), you will be able to search from the query language,
through any of its aliases: tags:some/alternate/values
or tags:all,these,values
.
Tags changes will not be detected by the indexer if the file itself did not
change. One possible workaround would be to update the file ctime
when
you modify the tags, which would be consistent with how extended attributes function. A
pair of chmod commands could accomplish this, or a
touch -a
. Alternatively, just couple the tag update with a
recollindex -e -i
/path/to/the/file
.