Solr için Plugin yazmak

Geçtiğimiz günlerde şöyle bir iş geldi;

Müşteriler bazı kelimeler çok sayıda yazarak aramalarda ön plana çıkıyor. Bunun önüne geçelim!

Search engine olarak Solr kullanıyoruz. Kendi için bunu önlemek için “PositionFilterFactory” ve “RemoveDuplicatesTokenFilterFactory” bir arada kullanmak bu sorunu çözüyor ancak Lucene 5 ile bu özellik kaldırılmış.

This filter was deprecated and removed from Lucene in 5.0

Araştırıp bu işi nasıl yaparım diye baktım ama yapılmış bir şey bulamadım. Ben de hızlıca bir plugin yazayım dedim.

İşe kaynak kod incelemeyle başladım. Önce tekrar eden kelimeleri silen bir java kodu ortaya çıktı (stackoverflow). Daha sonra PositionFilterFactory’nin eski versiyonunu alıp implemente ettim.

Sonuçta isteyene eskisi gibi hızlıca PositionFilterFactory kullanma imkanı veya direk tekrar eden kelimeleri engelleyen bir plugin çıkmış oldu. Kullanım ve örnek çıktılar şurada https://github.com/volkan/lucene-solr-filter-eliminateduplicate

PR lere açık olan bu çalışma desteğinizi bekler :)

Yazı kalabalık gözüksün diye resimleri ekledim :)

Bu işi yaparken kullandığım kaynaklar;

https://github.com/apache/lucene-solr/
https://github.com/iorixxx/lucene-solr-analysis-turkish
https://github.com/chrismattmann/solrcene/