Gelişmiş bir içerik sitesinde arama bölümü yapıyorum ama sorunlar var.
Örneğin; İçinde tenis kelimesi geçen bir konum var. Bunu tenis diye aratınca bulabiliyorum. Ama tenis oynayan diye aratınca gelmiyor %words%
Bende bu sorunu çözmek için kelimeleri array' e alıp arattım ve çözdüm. Ama diğer bir sorunum var onu çözemiyorum.
Bu arama motorunun biraz kuvvetli olması gerekiyor. Yani içinde İşçi hakları geçen bir konum var. Ama bunu isci haklari diye aratınca sonuç dönmüyor.
Bu neden lazım olsun ki düşünürdüm eskiden olsa ama şu an çalıştığım ofiste Türkçe klavye yok maclerde mesela. Böyle binlerce insan var ülkemizde.
Smiliar search yapabileceğim bir kod var mı? Yada tüm bu isteklerimi karşılayabilecek bir arama şekli. Yani array' e almama gerek kalmadan, hemde benzer search eden bir kod var mıdır?
PHP MYSQL arama işlemleri
15
●191
- 21-10-2020, 20:41:38Veri tabanında aramaya gitmeden önce iki yapı kurarsınız. Kullanıcının normal metin kutusuna yazdığı kelimeyi like %arama% formatında arattıktan sonra sözcük bulunamazsa girilen kelimeyi TR formattan globale çıkartıp tekrar sorgulatırsınız. Yani 2 şekilde kontrol sağlanmış olur.
Örnek Dönüşüm :
Public Function Ceng(ByVal _String As String) As String
Dim Source As String = "ığüşöçĞÜŞİÖÇ"
Dim Destination As String = "igusocGUSIOC"
For i As Integer = 0 To Source.Length - 1
_String = _String.Replace(Source(i), Destination(i))
Next
Return _String
End Function - 21-10-2020, 20:42:38SELECT TRANSLATE(string, ‘ĞÜŞİÖÇğüşıöç’, ‘GUSIOCgusioc’) FROM tabloadi;
Yukarıdaki gibi bir sorgu kurup where ve like sorgunuzu yazarsananiz,yapmaya calistiginiz islemi yapabilirsiniz. Yukaridaki kod veritabanindan gelen degerlerdeki karakterleri ingilizce karakterlere cevirip aramanizi yapmaktadir. Sizde like icinde kullandiginiz %arama% sözcüğünu textboxa girilen kelimeyi ingilizce karakterlere cevirirseniz sorununuzu asmis olucaksiniz - 21-10-2020, 20:44:00Elastic search ile eş anlamlı kelimeleri de bulabilirsiniz ve düz arama fonksiyonlarına göre big datalarda daha hızlı çalışıyor benim kanaatimDreaMYs adlı üyeden alıntı: mesajı görüntüle
- 21-10-2020, 20:49:09Biraz inceledim ama sql örneğini göremedim.mertkilic0111 adlı üyeden alıntı: mesajı görüntüle
- 21-10-2020, 20:56:02#1305 - FUNCTION **.TRANSLATE does not existcinarenis adlı üyeden alıntı: mesajı görüntüle
Bu sanırım mysql de yok. - 21-10-2020, 21:15:53Onun mysql deki karşılığı REPLACE dir hocam doğru dediniz. Aşağıdaki örneğe göre yazabilirsinizDreaMYs adlı üyeden alıntı: mesajı görüntüle
SELECT blog_baslik,blog_aciklama, REPLACE(blog_baslik,'çişöğ','cisog') FROM blog