Имена с апострофом возвращают ту же актуальность, что и имена без полнотекстового поиска - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть сайт Wordpress, который использует и внешнюю базу данных книг. Я запускаю запрос, который ищет имена авторов и названия книг, затем сортирует результаты по релевантности, а затем по фамилии автора. Все отлично работает, пока я не найду О'Фаллона. Есть 2 автора с похожими именами, О'Фаллон и Фэллон. Актуальность для имен обоих авторов одинакова. Фэллон возвращается раньше О'Фаллона из-за сортировки по фамилии. Это как часть O 'отбрасывается или игнорируется. Вот запрос. Любая помощь будет принята с благодарностью.

$results = $tbr_db->get_results(
$tbr_db->prepare(
"SELECT DISTINCT book.id, book.title, book.publication_date, book.recent_publication_date, book.slug AS bookslug, book.img_url, author.ws_client, author.last_name, author.first_name, author.id AS authorid, author.slug AS authorslug, MATCH(book.title) AGAINST (%s IN NATURAL LANGUAGE MODE) as bookrev, MATCH(last_name,first_name) AGAINST (%s) as namerev
FROM ".TBR_BOOK_TABLE." as book
INNER JOIN book_author
ON book.id = book_author.book_id
INNER JOIN author
on book_author.author_id = author.id
WHERE ((MATCH(last_name,first_name) AGAINST (%s)) or (MATCH(title) AGAINST (%s)))
AND book.status = 'publish'
ORDER BY $sort
LIMIT $show_num
OFFSET $offset
",
array(
  $mysearch,
  $mysearch,
  $mysearch,
  $mysearch
)
)
);
...