FullText InnoDB Поиск без ответа

0

У меня большая проблема с использованием полнотекстового поиска в моей базе данных innoDB.
Прежде всего, таблица ns_pages содержит более 2,6 млн записей, с полнотекстовым индексом с 3 ключевыми блоками.
Эта БД работает на Dell R710 с 128 ГБ ОЗУ.
Когда я использую этот запрос, остановка БД работает.
если я проверю запрос, используя webmin, я вижу, что запрос все еще работает до таймаута.

Запрос довольно прост, но я не знаю, почему он не работает.

SELECT   sh.id,body, 'source', 'page_in_source', 'datepaper', 'folder'
, 'attach_fn', Description,s.ImgFName
FROM ns_pages sh INNER JOIN ns_source s on s.id=sh.source where viewnews=1 
AND DATE_ADD(sh.datepaper,INTERVAL s.days_in_advance DAY)  
BETWEEN '2017-12-22' AND '2017-12-22' 
AND source in (1815,345,1,382,89,14,12,239,108,119,485,490,13,509,2,537,182,193,333,559,1817,111,506,1615,1752,248,33,34,35,357,36,458,131,26,27,32,30,29,31,28,1816) 
AND MATCH (body) AGAINST ('"United States of America"' IN BOOLEAN  MODE) 
order by datepaper, DistributionArea, cadence, Description, page_in_source desc

но простой работает хорошо

SELECT   sh.id,body, 'source', 'page_in_source', 'datepaper', 'folder'
, 'attach_fn', Description,s.ImgFName
FROM ns_pages sh INNER JOIN ns_source s on s.id=sh.source where viewnews=1 
AND DATE_ADD(sh.datepaper,INTERVAL s.days_in_advance DAY)  
BETWEEN '2017-12-22' AND '2017-12-22' 
AND source in (1815,345,1,382,89,14,12,239,108,119,485,490,13,509,2,537,182,193,333,559,1817,111,506,1615,1752,248,33,34,35,357,36,458,131,26,27,32,30,29,31,28,1816) 
AND MATCH (body) AGAINST ('Jamaica' IN BOOLEAN  MODE) 
order by datepaper, DistributionArea, cadence, Description, page_in_source desc

План выполнения

Теги:
full-text-search
innodb

1 ответ

0

Проблема заключается в тексте

MATCH (body) AGAINST ('"United States of America"' IN BOOLEAN MODE)

Термин поиска включает Соединенные Штаты Америки в двойных кавычках, а в моем логическом поиске MySQL с использованием FullText Search содержимое рассматривается как один поиск.

Вы удаляете двойные кавычки

MATCH (body) AGAINST ('United States of America' IN BOOLEAN MODE)

  • 0
    но если я хочу найти именно условия Соединенных Штатов Америки ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню