[MySQL] FULL TEXT часто выдает все в подряд

rtyug
На сайте с 13.05.2009
Offline
263
673

есть большая таблица, нужно вывести с поиска данные:

например запрос:


SELECT from, MATCH (a) AGAINST ("bla-bla@bla.com") AS `relevance` FROM
art WHERE MATCH (a) AGAINST ("bla-bla@bla.com") limit 10000;

он должен выдать 6 полей которые совпадают с вводимым текстом bla-bla@bla.com

НО он выдает еще 2000 результатов все которые хотя бы не много совпадают с bla-bla@bla.com

в большинства случаев работает если задать минимальную релевантность 6:


SELECT from, MATCH (a) AGAINST ("bla-bla@bla.com") AS `relevance` FROM
art WHERE MATCH (a) AGAINST ("bla-bla@bla.com") > 6 limit 10000;

НО в при данном поиске оно все равно не работает, выдает 2000 результатов вместо 6 !!! :madd:

есть добавить минимальную релевантность больше 6.9:


SELECT from, MATCH (a) AGAINST ("bla-bla@bla.com") AS `relevance` FROM
art WHERE MATCH (a) AGAINST ("bla-bla@bla.com") > 6.9 limit 10000;

то выдает 28 результатов, вместо 6 которые должны быть

ВОПРОС: как сделать чтобы поиск выдавал именно то что нашел? а НЕ все возможные похожие результаты по несколько тысяч, вместо 1-6 результатов ?

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
N
На сайте с 06.05.2007
Offline
419
#1

попробуй дополнительно еще и отфильтровать результаты. Кроме match добавь еще и обычные условия sql типа like.

Тормозить не будет - у match всегда приоритет в смысле плана выполнения.

Кнопка вызова админа ()
rtyug
На сайте с 13.05.2009
Offline
263
#2

netwind, тут большая существующая программа, где много гемороя и все в куче сделано

т.е. я так понял просто отфильтровать вывод по данному вводимому запросу, чтобы было точно то что ищется...

rtyug добавил 02.09.2011 в 17:12

а может быть поставить минимальную релевантность 10?

SELECT  from, MATCH (a) AGAINST ("bla-bla@bla.com") AS `relevance` FROM 
art WHERE MATCH (a) AGAINST ("bla-bla@bla.com") > 10 limit 10000;

я ввел пару примеров, вроде бы оно мусор пропускает, то которое меньше 10 по релевантности

хотя, я не знаю правильно ли это, а то вдруг некоторое пропустит

N
На сайте с 06.05.2007
Offline
419
#3

Численное значение релевантности никак не отражает наличие или отсутствие всех слов. Его можно только сравнивать с другими

dlyanachalas
На сайте с 15.09.2006
Offline
693
#4

Надо добавить IN BOOLEAN MODE и поместить запрос в кавычки.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий