Merhaba,
Bir web sitemizde fulltext search ile arama yaptırıyoruz.
Genel olarak tüm aramalarda başarılı sonuçlara ulaşıyoruz ama arama kelimesinde "-" karakteri iki kez geçiyorsa arama sonuç vermiyor.
Örnek;
40110 - sonuç veriyor
041059-V - sonuç veriyor
4S-045-V - sonuç vermiyor
Birden fazla yöntem denedim ama bununla ilgili bir yöntem bulamadım.
Fulltext Arama Hakkında Yardım
7
●270
- 13-08-2022, 18:57:39Kimlik doğrulama veya yönetimden onay bekliyor.
- 14-08-2022, 11:42:11Arattığımız kelimeler aşağıdaki gibi;
40110 - sonuç alıyoruz sorun yok
041059-V - sonuç alıyoruz sorun yok
4S-045-V - sonuç alamıyoruz, kayıt olmasına rağmen sonuç vermiyor - 15-08-2022, 10:44:42yani sadece kelime içerisinde 2 kez - geçtiğinde sonuç üretmiyorQuarkChain adlı üyeden alıntı: mesajı görüntüle
- 16-08-2022, 20:09:05$sth = $db->prepare(" SELECT * FROM products WHERE MATCH (search_keyword) AGAINST ('".$nrstring."' IN BOOLEAN MODE); group by original_no1,original_no2 " );omergunay adlı üyeden alıntı: mesajı görüntüle
Sorgum bu şekilde hocam - 17-08-2022, 03:57:19aradaki "-" işareti gibi karakterler sözcük karakteri olarak değerlendirilmediği için kelime bölünüyor ve minimum karakter sınırına takılıyorsunuz. terimi çift tırnak içerisinde gönderebilirsiniz ama tam eşleşme dışında işe yaramaz.
şu sorguyu çalıştırarak limiti görebilirsiniz(muhtemelen 4'tür);
show variables like 'ft_min_word_len';
mysql ayarlarına müdahale edemiyorsanız; arama terimi için yeni bir kolon oluşturarak ya da halihazırdaki kolonu kullanarak, sözcüklerdeki özel karakterleri atın. örneğin veriyi; "4S-045-V" yerine "4S045V" olarak saklayın. arama terimini "4S-045-V" yerine "4S045V" şeklinde gönderin.
mysql ayarlarına müdahale edebiliyorsanız my.conf ya da my.ini dosyasından limiti değiştirin;
[mysqld] ft_min_word_len=1
1. yol: arama terimini "4S-045-V" yerine "+4S +045 +V" şeklinde gönderin.
2. yol: sorguya şunu ekleyin;
HAVING search_keyword LIKE '%".$nrstring."%'
not: örneğiniz üzerinden gidiyorum; sorguları bu şekilde oluşturmayın, güvenli değil. - 17-08-2022, 10:18:03ghergedan adlı üyeden alıntı: mesajı görüntüle
Yanıtınız için çok teşekkür ederim, tüm yönergeleri uygulayıp sonucu paylaşacağım.