ElasticSearch var birde onu deneyin. Ya da imkan varsa PostgreSQL'e
terfi edin ;)
On 08/03/2015 02:51 AM, Ayhan DELİCAN wrote:
Özgür Bey MySql'in Fulltext Search i inanılmaz başarısız zaten.
Performans olarakta sizi tatmin etmeyecektir.
Size önerim, Sphinx Search(C++ ile yazılmış) veya SOLR(Java ile
yazılmış Tomcat'e ihtiyacı olur) kullanmanız.
Gözünüzde büyütmeyin kullanımları oldukça basit fakat benim tercihim
herzaman Sphinx Search ten yanadır.
SOLR de indexleme yapabilmeniz için dökümanlarınızı XML formatına
almanız gerekmekte (başka bir yöntemi varsa bilemiyorum)
Sphinx Search ise install den sonra kullanımı oldukça kolay, bir tane
ayar dosyası içerisinde SQL sorgunuzu yazıyorsunuz ve SphinxSearch onu
düzenli periyotlarda sizin belirlediğiniz bir CronTab ile indexliyor
(RealTime yapmazsanız).
Size kalan sadece sorgu yapmak kalıyor ve Sphinx size sonuçları sadece
dizi içinde id numaraları olarak döndürüyor ve siz bu id numaralarını
MySQL in IN(564,987,98798,98789) şeklinde sonuçları alıp ekrana
bastırıyorsunuz.
*EK BİLGİ*
Kendi adıma Faceted Search üzerine çok çalıştığımı belirtmek isterim
SOLR de bu hazır bir kütüphane iken Sphinxte kendi veri yapımı
oluşturdum, iki çekirdekli Linode VPS ve 2GB ramli bir makinada
(arkada 10 tane daha site çalışır durumdayken) aldığım sonuçlar muazzam.
http://demo.dizelweb.com/?i=katalog&kat=396 adresinden görebileceğiniz
gibi, solda 200 adet filtre var ve 1000 tanede ürün var. Herbir filtre
için toplam ürün belirtilmiş durumda yani sayfa her açılışında 200.000
işlem yapıyor. Hiçbir filtre işaretlenmemişken 200.000 işlemi
saniyenin sadece binde 2 sinde yapmakta.
3 Ağustos 2015 01:21 tarihinde Özgür KOCA <[email protected]
<mailto:[email protected]>> yazdı:
Merhaba liste,
Sorgularımın başarımını artırmak için çaba sarfediyorum fakat bir
noktada takıldım.
Normalde şu SQL başarımından şikayetçiyim doğal olarak baştaki
%'den index kullanılamıyor (full table scan)
SELECT * FROM imla WHERE kelime like '%ar_z%';
Yukarıdaki sql'in yerine geçecek bir fulltext search uygulamaya
çalışıyorum. Fulltext index oluşturup (ft_min_word_len = 1) şu
şekilde yazdım fakat işe yaramıyor:
SELECT * FROM imla WHERE match(kelime) against('*ar*z*' in boolean
mode);
Kullanımda bir hata yapıyorum ya da eksik bilgim var.
Yardımcı olursanız çok sevinirim.
Özgür Koca
[tankado.com <http://tankado.com/>][raspberry-pi.tankado.com
<http://raspberry-pi.tankado.com/>]
<http://www.facebook.com/zerostoheroes/>
_______________________________________________
Linux-programlama mailing list
[email protected]
<mailto:[email protected]>
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
Ayhan DELİCAN
tekneyatshop.com <http://www.tekneyatshop.com> | dikeylimit.net
<http://www.dikeylimit.net> | plakatr.com <http://plakatr.com>
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
M.Atıf Ceylan
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php