Perbedaan Term Query, Boolean Query, dan Fuzzy Query Lucene

Posted in Lucene, Friday, January 11th, 2013, by Muhammad Fahmi Al Azhar

Lucene mendukung berbagai macam query, seperti Term Query, Boolean Query, Fuzzy Query, Span Query, dan masih banyak lagi.

Post kali ini membahas mengenai perbedaan dari Term Query, Boolean Query, dan Fuzzy Query.

Term Query

Dari berbagai macam implementasi dari query, term query adalah yang paing mudah dipahami dan paling banyak digunakan di dalam aplikasi. Term query akan mencocokan dengan semua dokumen yang berisi term yang telah dispesifikasikan.

Term query akan mengidentifikasi dan melakukan skoring ke semua dokumen yang memiliki field dengan string tertentu.

contoh:

TermQuery tq = new TermQuery(new Term(“fieldName”, “term”));

Dari contoh di atas, Query akan mengidentifikasi semua dokumen yang memiliki Field bernama “fieldName” dan berisi kata “term”

Tutorial membuat search engine menggunakan apache lucene dengan menggunakan bahasa pemrograman java

Logo Lucene

Boolean Query

Term Query akan menjadi lebih baik jika digabungkan dengan Boolean Query. Dengan Boolean Query kita dapat menggunakan operator seperti SHOULD, MUST, dan MUST NOT.

Dalam sumber lain (di luar Lucene), Boolean Query menggunakan operator seperti OR dan AND. Sedangkan di dalam dokumentasi Lucene sendiri terdapat tiga operator di atas. ~Belum diklarifikasi.

Fuzzy Query

Fuzzy Query akan mencocokan dokumen yang berisi term mirip dengan yang term diberikan. Similarity ditentukan dengan menggunakan Levenshtein distance.

Fuzzy Query sangat bermanfaat untuk menghitung variasi ejaan (spelling) di dalam suatu collection.

 

sumber: http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/search/package-summary.html#package_description

Semoga bermanfaat.

Leave a Reply

Your email address will not be published. Required fields are marked *