Postgres FTS (FullText Search) uygulaması hakkında tavsiye edebileceğiniz 
döküman varmı? 

Teşekkürler. 


----- Orijinal Mesaj -----

Kimden: "M.Atıf Ceylan" <[email protected]> 
Kime: [email protected] 
Gönderilenler: 3 Ağustos Pazartesi 2015 14:06:45 
Konu: [Linux-programlama] Re: MySQL fulltext search sorgusunda takıldım 


Hocam windows haricinde böyle bir problemin varlığından haberdar değilim desem? 
Postgres dil ile ilgili işlevselliğini isletim sisteminden alır. Eğer işletim 
sistemi tarafinda locale problemi varsa o durumda sorun yasanmış olabilir ki, 
windows tarafinda da durum böyle. Ben 10 yıldır böyle bir sorun yaşadığımı 
inanın anımsamıyorum. 

Postgres FTS (FullText Search) benim gördüğüm open source en iyi FTS cözümünü 
sunuyor. Hatta bir musterim 2 büyük ticari DB'den sırf FTS tarafındaki çözüme 
kavuşturamadıkları bir sorun nedeni ile Postgres'e geçmek üzere. 

MySQL aradığınız sözcüğü eşleştirirken dilbilgisine vakıf olmadan arama yapar. 

Örneğin: 
"Ahmet Türkçe kitabını okumayı çok seviyor." 

MySQL'de 

"kitabı sever" anahtar kelimeleri ile aradığınızda sonuç bulunamazken 
PostgreSQL bu kelimelerle arama sonucu döndürür ve highlighting yapar, score 
verir. 

Bunun nedeni Türkçe'yi biliyor olmasıdır. Bu sayede aradığınız sözcük farklı 
kiplerde geçiyor olsa bile sonuç dönecektir. Çoğu durumda ElasticSearch gibi 
çözümlere ihtiyaç kalmamaktadır. Aynı alan içinde locale bilgisi vererek arama 
yapıldığında diğer dilleri de aynı şekilde bilir ve arar. 

On 08/03/2015 01:21 PM, Omer Barlas wrote: 



PgSQL 'de de UTF-8 ile küçük büyük harf karışık arama problemi vardı diye 
hatırlıyorum, hala devam ediyor mu? Eğer etmiyorsa PgSQL gerçekten de en iyi 
çözüm. 

3 Ağustos 2015 10:41 tarihinde "M.Atıf Ceylan" < [email protected] > yazdı: 

<blockquote>

ElasticSearch var birde onu deneyin. Ya da imkan varsa PostgreSQL'e terfi edin 
;) 


On 08/03/2015 02:51 AM, Ayhan DELİCAN wrote: 

<blockquote>

Ö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] > yazdı: 

<blockquote>

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 ][ raspberry-pi.tankado.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 







-- 



Ayhan DELİCAN 
tekneyatshop.com | dikeylimit.net | 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 

</blockquote>

-- 

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 


</blockquote>




-- 
Omer Barlas 
[email protected] 


_______________________________________________
Linux-programlama mailing list [email protected] 
https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: 
http://liste.linux.org.tr/kurallar.php 

</blockquote>

-- 

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 

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap