v0.9.1
WP Arabic Search 0.9.1
Four independent test rounds on a 50,000-post rig since 0.9.0. Every fix below
was found by testing, not by reading the code.
Fixed
- Two-letter Arabic words returned nothing at all. The token guard counted bytes
rather than characters, so short Arabic tokens became required terms InnoDB had
never indexed. Short tokens are now dropped, and a search left with none falls
back to core's LIKE and matches it exactly. - That fallback was then silently intersected with the index, so a post missing
its index row vanished from a search core would have answered. All three query
filters now gate on one shared decision instead of each deciding for itself. - status could not see a stale index, only a missing one. It now compares
updated_at against post_modified_gmt, reports a stale count and exits non-zero. - Scheduled posts reported stale for ever, and a post published ahead of schedule
reported stale once its original time passed. Both fixed.
Changed
- The search walks the index once instead of twice: a single INNER JOIN carrying
both the match and the ranking, replacing an IN ( SELECT ... MATCH ... )
subquery plus a separate join. Roughly 16% faster on heavy queries, with no
regression in the query plan.
Measured on 50,000 posts
- A selective search goes from about 210 ms to 5 ms.
- The index stays ahead until roughly 70% of the archive matches. An earlier
claim that it lost at high match counts was a term-position artefact, and is
withdrawn.