koniu writes
Specifying multiple ----dir: ---- yields no results:
$ recoll -t "foo dir:archive/cam" | wc -l
12
$ recoll -t "foo dir:archive/hack" | wc -l
28
$ recoll -t "foo dir:archive/hack dir:archive/cam" | wc -l
2
Query as passed to xapian (a hint there?):
$ recoll -t "foo dir:archive/hack dir:archive/cam"
Recoll query: ((((foo:(wqf=11) OR foos) FILTER (XParchive PHRASE 2 XPhack)) FILTER (XParchive PHRASE 2 XPcam)))
0 results
Using explicit ----OR ---- doesn’t fix the problem:
$ recoll -t "foo dir:archive/hack OR dir:archive/cam"
Recoll query: ((foo:(wqf=11) AND ((<alldocuments > FILTER (XParchive PHRASE 2 XPhack)) FILTER (XParchive PHRASE 2 XPcam))))
0 results
Same issue with python api. Recoll version 1.18.1
medoc writes
You are right, there is no way currently to search multiple directories. Originally, only one "dir:" was allowed, and then it was found that "dir:something -dir:other -dir:other2" was useful, so multiple clauses where allowed, but it’s always AND (or AND_NOT).
Actually, you are right that an OR would be useful too, but I can only add it to the TODO for now…
koniu writes
That’s a shame :(.
You might want to edit the docs [1] since they do say (in one place, I missed the limitation mentioned above):
dir:recoll dir:src -dir:utils -dir:common
This would select results which have both recoll and src in the path
(in any order), and which have not either utils or common.
medoc writes
This is fixed in trunk: