PDA

View Full Version : مشکل با fulltext در php



bluefox
چهارشنبه 31 خرداد 1391, 09:46 صبح
سلام به همه دوستان
من یه تیبل دارم که ایمیل ها رو توش ذخیره میکنم
چون حجم ایمیلها خیلی زیاد شد مجبور شدم از fulltext استفاده کنم ولی جستجو با fulltext نتیجه دقیق رو برنمیگردونه
درواقع من میخوام عین عبارت رو برگردونه و نه مشابه رو
کدم اینه :

select * from `table` where MATCH (`mail`) AGAINST ('test@yahoo.com' IN BOOLEAN MODE);


و نتیجه :

test@yahoo.com
aa.test@yahoo.com
asdf.test@yahoo.com

من فقط میخوام یک نتیجه دقیق برگرده
کسی میتونه کمک کنه ؟

pejman_view
چهارشنبه 31 خرداد 1391, 14:14 عصر
سلام

اول متوجه نشدم چرا از فول تکست استفاده کردید. اصلاً لازم به اینکار نبود. اما شما به هر حال صلاح دونستید اینکار را بکنید من جواب را به شما خواهم داد:
کافی است کوئری خود را تغییر دهید به:
select * from `table` where MATCH (`mail`) AGAINST ('+test@yahoo.com' IN BOOLEAN MODE);



حالا سرچ کنید ببینید نتیجه چه چیزی خواهد بود.

با آرزوی موفقیت.

bluefox
شنبه 03 تیر 1391, 11:14 صبح
ممنون از پاسخ شما
اولا دلیل استفاده من از fulltext سرعت جستجو است. تیبل مربوط به لاگ کاربران میباشد و تعداد رکوردها بیش از 5 میلیون
با کوئری های معمولی تقریبا 7 ثانیه زمان مصرف میشود

دوم اینکه مشکل همچنان پابرجاست !

pejman_view
شنبه 03 تیر 1391, 17:11 عصر
سلام

100% مطمئنم درسته چون قبل از اینکه جواب بدم صحت جوابم را تست کردم حتی اینم کوئری:
SELECT * FROM `test` WHERE MATCH (`email`) AGAINST ('+pejman@gmail.com' IN BOOLEAN MODE)