Tag

Ok. Pertama aku gak ngerti apa gunanya Lucence. Kedua gak ngerti juga bagaimana pakainya. Ketiga, gak tahu juga mau mulai dari mana.

Loh, trus yang saya tahu apa dong? Saya denger (denger nih…) aku bisa melakukan search kayak google di Lucence. Wow, kedengarannya indah.

Jadi kalau tulisan saya dibawah ini ngawur, tolong kasih tahu saya ya. Dus, apa yang saya lakukan? Pertama saya cari buku bajakannya [sory aku gak share]. Baca sana-sini bagaimana cara menggunakannya.  Trus hasilnya gimana? Menakjubkan, jauh panggang dari api, bukan sulap bukan sihir. Bukan kayak google juga.

gambar kerja lucene

gambar kerja lucene

 

Trus kayak apa dong? Jadi sepemahamanku, Lucence itu semacam alat (mesin) pemakan teks. Dari teks itu dia ambil tokennya dan diindex. Trus berdasarkan index itu kalau kita minta Lucence untuk mencarikan dokumen atau apapun yang berkaitan dengan suatu kata atau kalimat dia akan keluarkan lokasinya dimana (kayaknya bisa diset sih apa yang mau ditampilkan).

Jadi ada dua hal pokok dalam Lucence ini : 1. Membuat index. 2. Mencari berdasarkan index. Dan tentu semuanya dalam konteks “teks”.

Saya akan membuat sekenario kecil untuk Lucence, saya suplay string kepadanya kemudian saya tanya dia sesuatu yang ada didalam string itu. Ini testnya: [hal-hal teknis saya kopi paste saja dari buku-buku dan contoh-contoh, jadi sampai disini saya belum mengerti]

       [Test]
        public void TestCreatingIndexFrom2String()
        {
            Lucene.Net.Store.Directory indexDir = Lucene.Net.Store.FSDirectory.GetDirectory("index", true);
            IndexWriter idxWriter = new IndexWriter(indexDir, new StandardAnalyzer(), true);

            Document doc1 = new Document();
            doc1.Add(new Field("contents", "The quick brown fox jumps over the lazy dog",
                                       Field.Store.YES,
                                       Field.Index.TOKENIZED,
                                       Field.TermVector.YES));

            Document doc2 = new Document();
            doc2.Add(new Field("contents", "Dog The quick brown fox jumps over the lazy dog dog dog",
                                       Field.Store.YES,
                                       Field.Index.TOKENIZED,
                                       Field.TermVector.YES));

            idxWriter.AddDocument(doc1);
            idxWriter.AddDocument(doc2);
            idxWriter.Optimize();
            idxWriter.Close();
        }

Test pencarian:

[Test]
        public void TestSearchOnIndexed2Strings()
        {
            this.TestCreatingIndexFrom2String();
            Lucene.Net.Store.Directory dir = FSDirectory.GetDirectory(“index”, false);
            IndexSearcher searcher = new IndexSearcher(dir);

            Term term=new Term(“contents”,”dog”);
            Query qry = new TermQuery(term);
            Hits hits = searcher.Search(qry);
            for (int i = 0; i < hits.Length(); i++)             {                 Document doc = hits.Doc(i);                 string contentValue = doc.Get("contents");                 Console.WriteLine(contentValue);             }         } [/sourcecode] Saya masukkan string "The quick brown fox jumps over the lazy dog" dan string satu lagi juga ada dog-nya. Dan ketika saya tanya "dog" mestinya ada dua baris. Keterangan lebih lanjut saya akan paparkan dipost berikutnya.

Iklan