2014-11-15 2 views
0

Привет, меня попросили обновить раздел поиска ключевых слов на нашем сайте. Это должно быть как на картинке. enter image description hereПоиск ключевого слова Sql для полного текста - содержит или не содержит

Пользователь может выбрать один из двух вариантов из окна выбора, и это относится ко всему столбцу с полным текстом. Затем он/она вводит pharese или слово и говорит добавить. Он переходит к «содержит поле», и это означает, что результат поиска должен содержать это слово. Если пользователь перетащил его в другой, результаты поиска не должны содержать это слово/с. Я сделал это как-то. Но я беспокоился о производительности. Эти поисковые запросы происходят каждые 15 секунд в среднем, а таблица имеет ~ 30 миллионов записей. Это то, что я сделал:

INNER JOIN CONTAINSTABLE (FullTextDB,column1,'"software developer*"') ka on a.refnumber = ka.[key] 
left JOIN CONTAINSTABLE (FullTextDB,column1,'"mvc*" ') ri on a.refnumber = ri.[key] 
INNER JOIN CONTAINSTABLE (FullTextDB,column2,'"php*" ') yer on a.refnumber = yer.[key] 

WHERE ri.[key] is null 

Это приносит правильные результаты, но как я могу улучшить это. Я использовал левое соединение, чтобы исключить. Есть идеи? Спасибо.

ответ

0

Группировка ключевых слов для поиска обеспечит улучшенную производительность

примера

"(A OR B) AND NOT (C)" 
Смежные вопросы