Tag

Jadi ceritanya begini (scenario): saya punya kumpulan produk yang dipromosikan diinternet. Tentu saja ada field yang berisi promosi dan juga field harga promosi.

Nah, pencarian yang saya inginkan, contoh: “sepatu sport harga kurang dari 100000”. Karena angka tidak diindex, maka search saya tidak pernah menemukan satupun.

Selidik punya selidik, ternyata masalahnya ada di Analizer. Semacam parser. By default Lucene akan menggunakan analizer yang mengabaikan angka. Trus agar bisa mesti diganti apa? Setelah tanya mbah google, gampang katanya: cari analizer yang ada kata “num” didalamnya….hehehe lucu ya…lucene gitu loh…
Trus saya pakai apa? Pakai ini nih:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(
new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num()
);

Sayangnya analizer diatas membedakan huruf besar dan kecil, “baju” tidak sama dengan “Baju”. Pada kenyataannya kedua hal itu sama, maka saya coba cari yang lain lagi. Saya cari di Zend Library:

library\Zend\Search\Lucene\Analysis\Analyzer\Common

Didalam path diatas ada beberapa folder: Text, TextNum, Utf8, Utf8Num. Saya buka TextNum, dan saya memenukan analizer :Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive. Sehingga saya ubah menjadi:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(
new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive()
);

Iklan