Refactor search query parse of MysqlSearchEngine
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 22 Dec 2020 10:59:00 +0000 (11:59 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 23 Dec 2020 09:20:50 +0000 (10:20 +0100)
commitc36b70769fd366597d463064b29afc87fb2bcefe
treec1a4f562784cab4c120380918695c544f413f249
parent3ae645b3c414b19dda7830cc3b6e4a7e35820868
Refactor search query parse of MysqlSearchEngine

This new parser was written against MySQL's Yacc / Bison grammar and should be
much more robust, because it also understand MySQL's semantics properly.

This new parser consists of two parts:
1. Split the query into separate terms like MySQL would do.
2. Modify these terms to improve the user experience
   (e.g. by adding the asterisk wildcard).

The result of this change should be that the search engine always generates
queries that are compatible with InnoDB based fulltext indices.

This is related to #3404.
wcfsetup/install/files/lib/system/search/mysql/MysqlSearchEngine.class.php