Wesley Simplicio
058c50816c
fix(session): route OR-combined short CJK tokens to LIKE fallback ( #20494 )
...
The FTS5 trigram tokenizer requires >=3 CJK characters per individual
token to produce matchable trigrams. A query like "广西 OR 桂林 OR 漓江"
has cjk_count=6 (passes the existing >=3 guard) but each token is only
2 CJK chars, so the trigram index returns 0 results.
Fix:
- Add per-token check: if any non-operator CJK token has <3 CJK chars,
force the LIKE fallback path regardless of total cjk_count.
- Expand the LIKE fallback to build one LIKE condition per non-operator
token joined with OR, so each term is matched independently.
Regression tests added in TestCJKSearchFallback:
- test_cjk_or_combined_short_tokens_returns_results
- test_cjk_short_token_or_query_preserves_filters
2026-05-09 17:53:02 -07:00
..
2026-05-05 10:18:28 -07:00
2026-05-09 14:36:58 -07:00
2026-05-09 17:52:51 -07:00
2026-05-09 14:47:00 -07:00
2026-05-09 11:11:45 -07:00
2026-05-04 01:39:23 -07:00
2026-04-07 17:28:37 -07:00
2026-03-14 14:27:20 +03:00
2026-05-09 14:47:33 -07:00
2026-05-09 14:36:58 -07:00
2026-04-24 03:04:42 -07:00
2026-04-27 12:37:33 -07:00
2026-04-16 16:50:15 -07:00
2026-04-30 02:35:29 -07:00
2026-05-09 13:07:46 -07:00
2026-05-09 14:47:00 -07:00
2026-05-09 14:36:58 -07:00
2026-05-09 13:36:01 -07:00
2026-05-09 11:07:37 -07:00
2026-05-09 17:52:12 -07:00
2026-05-05 15:42:39 -05:00
2026-05-05 13:46:20 -07:00
2025-10-01 23:29:25 +00:00
2026-05-07 07:05:05 -07:00
2026-03-17 02:53:33 -07:00
2026-04-21 01:56:35 -07:00
2026-04-28 04:58:22 -07:00
2026-04-21 06:06:16 -07:00
2026-04-24 14:32:21 -07:00
2026-04-21 08:00:00 -07:00
2026-04-28 05:21:49 -07:00
2026-04-29 23:18:55 -07:00
2026-04-13 10:50:24 -07:00
2026-04-12 03:53:30 -07:00
2026-03-15 21:59:53 -07:00
2026-04-30 04:32:06 -07:00
2026-05-08 14:43:13 -07:00
2026-05-07 09:59:07 -07:00
2026-05-02 01:49:55 -07:00
2026-04-26 19:01:26 -07:00
2026-05-09 02:09:35 -07:00
2026-05-09 17:53:02 -07:00
2026-04-02 15:33:51 -07:00
2026-05-06 04:02:02 -07:00
2026-04-28 06:45:55 -07:00
2026-05-07 13:04:08 -07:00
2026-04-11 23:12:11 -07:00
2026-05-06 01:11:49 +05:30
2026-05-08 14:27:40 -07:00
2026-05-07 13:41:16 -07:00
2026-04-20 12:23:05 -07:00
2026-04-19 22:44:47 -07:00
2026-04-29 09:53:42 -07:00
2026-03-24 08:19:23 -07:00
2026-04-07 17:59:42 -07:00
2026-04-29 05:00:40 -07:00
2026-04-29 12:43:39 -07:00
2026-04-07 22:23:28 -07:00
2026-03-30 17:34:43 -07:00
2026-05-05 10:15:31 -07:00
2026-05-07 06:35:54 -07:00
2026-04-17 13:31:53 -07:00
2026-04-08 00:41:36 -07:00
2026-03-19 15:16:35 +01:00
2026-04-10 13:37:45 -07:00
2026-05-07 13:04:08 -07:00
2026-04-17 14:21:22 -07:00
2026-02-26 13:54:20 +03:00
2026-05-05 10:14:17 -07:00
2026-04-20 12:23:05 -07:00
2026-04-20 12:23:05 -07:00
2026-05-07 05:46:05 -07:00
2026-04-20 23:20:33 -07:00
2026-05-07 18:54:29 -04:00
2026-03-30 13:28:10 +09:00
2026-04-26 18:50:49 -07:00
2026-04-26 18:50:49 -07:00
2026-04-26 18:50:49 -07:00
2026-04-26 18:50:49 -07:00