Filename terms were stored twice, once with the "F" filename property
prefix, and once without prefix. This allows to trivially search for
files where a term matches in filename or content, but has a number
of drawbacks:
- It is not possible to search for a term in content only
- The storage size for filenames is approximately doubled
- File renaming can cause significant I/O load
- Terms appearing in both content and filename may be stored incomplete in the phrase storage.
Re (2.), in case full text indexing is disabled this is a significant
part of the storage size. With full text indexing, the space savings
are likely neglegible.
Re (3.), when renaming a file where part of the filename is a common term,
e.g. "The fox.txt", renaming caused rewriting of data for "the", "fox"
and "txt". While for "txt" and "fox" this is neglegible, "the" is common
enough to cause a of rewrite of 10% of the whole DB.
The default search behaviour of matching both filename and content
has been restored by internally creating queries for both filename and
content and ORing both together. This extra step does not have any
noticeable (or even measurable) performance impact.
Depends on D28929