Update various places for what we can do with C++20:
- ends_with / starts_with
- std::to_array
- using instead of typedef
- designated initializers
- "[[maybe_unused]]" instead of G_GNUC_UNUSED
Also remove some unnecessary 'static'
Do the "phrasification" for matching fields later during query parsing;
this allows for handling combination fields correctly.
Also match both the normal term and the "phrase term", so we catch more
cases. Update/extend unit tests.
This fixes the "kata-container" issue also for body test.
Fixes#2167.
Xapian supports an "ngrams" option to help with languages/scripts
without explicit wordbreaks, such as Chinese / Japanese / Korean.
Add some plumbing for supporting this in mu as well. Experimental for
now.
Implement a new query parser; the results should be very similar to the
old one, but it adds an Sexp middle-representation, so users can see how
a query is interpreted.