* add reversed words and update token processing to allow
fulltext search to match end of word (e.g. searching 'wind -storm'
will now find 'whisperwind' or 'windrunner' and ignore 'stormwind')
* fix search token duplication for spells
* move fulltext indizes for tables /w ~10k+ rows to separate tables
> sounds have ~12k but names are effectively incompatible with FTI
* normalize searchable strings to catch edgecases
> preparse spell descriptions + buffs
> move effect text cols of items to new table
* also fix extended search of creatures, spells & quests
* dashes also split words into multiple tokens, so they are now
stripped from search entirely (see: 'weather-beaten')
* only search for the full search input if the tokenizer didn't yield
any fulltext tokens. This should fix search performance after 00f048d3ae
* fixes#497
* filters should test string input during initialization, so errors
can be passed on to the PageTemplate.
* have strings be compared for identity by default and (NOT) LIKE as
optional operator
* note: if a string criterium gets processed via callback function
it will not get prechecked
* readd regular indizes for name cols. There are cases where entities
are named in a way that does not work with FT indizes.
ex. "XT:9" is two tokens "XT", "9" which are too short to be indexed.
* additionally to FT search also exact match col to search string.
* do not use stopwords in fulltext search
apparentyl there is a bug in innodb where including stopwords in a search causes the lookup to fail entirely.
e.g. innodb_ft_enable_stopword must be disabled when the index is edited (rows are added/removed)
* don't create a MATCH AGAINST search from empty search strings after sanitization
* drop fulltext indizes for locale zhCN
logographic languages need special treatment, which handling may differ by db provider
* use LIKE search by default for locale zhCN. Added config option to use fulltext if supported by db.
* add more indizes to large tables for cols used in lookups
* drop multi-column indizes on spell as they are not utilized by mysql
* add and use fulltext indizes for names of items, spells, quests, creatures & objects
could add more, but is it really necessary?
* limitations
- still need a solution for race/class/spellFamily masks cols that are used as such
- fulltext indizes in boolean mode cant partial match the end of a word.
reverse name cols and search and match back to front like that..? blows up db size even more though
(+trike* : "stormstrike" => +ekirt* : "ekirtsmrots")
* group options for: currency, factions, itemcurrency & zones
* update faction setup so faction "The Frostorn" are available and it does not rely on factiontemplate.dbc
* fix broken purchasablewith* localization in locale DE
* move checks to __construct so they can be run on $_POST data
and don't create malformed filter urls
* if we received malformed $_GET params, build new params and reload
* do not store error state in cache
* cleanup
* modernize DB-Types
- long term: should be split in class that describes the DB-Type and container class that handles multiples
* make unchanging filter props static, allow lookup of criteria indizes through filter
* move username/mail/password checks to util and make them usable as input filter