Skip to content

v0.9.1

Choose a tag to compare

@jaafarabazid jaafarabazid released this 24 Jul 13:55

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.