Lucene Guruh: 416-18 Bajardi: Abduraxmonov m tekshirdi: Djurayev o toshkent-2021



Download 236,03 Kb.
bet2/7
Sana08.01.2022
Hajmi236,03 Kb.
#335379
1   2   3   4   5   6   7
Bog'liq
ttda Abduraxmanov

dependency>

<groupId>org.apache.lucene

groupId> <artifactId>lucene-coreartifactId>

<version>7.1.0version>

dependency>

Oxirgi versiyani bu yerda topishingiz mumkin.

Shuningdek, qidiruv so'rovlarimizni tahlil qilish uchun bizga kerak bo'ladi:

<dependency>

<groupId>org.apache.lucenegroupId>

<artifactId>lucene-queryparserartifactId>

<version>7.1.0version>

dependency>

Oxirgi versiyani bu yerda tekshiring.

3. Asosiy tushunchalar

3.1. Indekslash

Oddiy qilib aytganda, Lucene ma'lumotlarning "teskari indeksatsiyasi" dan foydalanadi - sahifalarni kalit so'zlarga solishtirish o'rniga, u har qanday kitob oxiridagi lug'at kabi kalit so'zlarni sahifalarga joylashtiradi.

Bu matn orqali to'g'ridan-to'g'ri qidirish o'rniga, indeks bo'yicha qidirayotgani uchun tezroq qidiruv javoblarini beradi

3.2. Hujjatlar

Bu erda hujjat maydonlar to'plamidir va har bir maydon u bilan bog'langan qiymatga ega.

Indekslar odatda bir yoki bir nechta hujjatlardan iborat bo'lib, qidiruv natijalari eng mos hujjatlar to'plamidir.
AD Bu har doim ham oddiy matnli hujjat emas, balki ma'lumotlar bazasi jadvali yoki to'plam bo'lishi mumkin.

3.3. Maydonlar

Hujjatlarda maydon ma'lumotlari bo'lishi mumkin, bu erda maydon odatda ma'lumotlar qiymatini saqlaydigan kalit hisoblanadi:

title: Goodness of Tea

body: Discussing goodness of drinking herbal tea...


E'tibor bering, bu erda sarlavha va matn maydonlar bo'lib, ularni birgalikda yoki alohida qidirish mumkin.

3.4. Tahlil

Tahlil qidiruvni osonlashtirish uchun berilgan matnni kichikroq va aniq birliklarga aylantirishdir.

Matn kalit so'zlarni ajratib olish, umumiy so'zlar va tinish belgilarini olib tashlash, so'zlarni kichik harflarga o'zgartirish va hk bo'yicha turli operatsiyalardan o'tadi.

Buning uchun bir nechta o'rnatilgan analizatorlar mavjud:

StandardAnalyzer – asosiy grammatika asosida tahlil qiladi, “a”, “an” va hokazo kabi toʻxtash soʻzlarini olib tashlaydi. Shuningdek, kichik harflar bilan ham oʻzgartiradi.

SimpleAnalyzer - harfsiz belgilar asosida matnni buzadi va kichik harflarga aylantiradi

WhiteSpaceAnalyzer - matnni oq bo'shliqlar asosida buzadi

Foydalanishimiz va sozlashimiz uchun ko'proq analizatorlar mavjud.

3.5. Qidirilmoqda

Indeks yaratilgandan so'ng, biz ushbu indeksni Query va IndexSearcher yordamida qidirishimiz mumkin. Qidiruv natijasi odatda olingan ma'lumotlarni o'z ichiga olgan natijalar to'plamidir.

Esda tutingki, IndexWritter indeks yaratish va indeksni qidirish uchun IndexSearcher uchun javobgardir.

3.6. So'rov sintaksisi

Lucene juda dinamik va yozilishi oson so'rovlar sintaksisini ta'minlaydi.

Erkin matnni qidirish uchun so'rov sifatida faqat String matnidan foydalanamiz.

Muayyan sohada matnni qidirish uchun biz foydalanamiz:



fieldName:text eg:

title:tea


Qidiruv diapazoni:

timestamp:[1509909322,1572981321]

Shuningdek, biz joker belgilar yordamida qidirishimiz mumkin



dri?nk

“?” belgisi oʻrniga bitta belgi qidiradi.



d*k


“d” bilan boshlanib, “k” harfi bilan tugaydigan, orasiga bir nechta belgilar qo‘yilgan so‘zlarni qidiradi

uni*

“uni” bilan boshlangan so‘zlarni topadi.

Shuningdek, biz ushbu so'rovlarni birlashtirib, murakkabroq so'rovlarni yaratishimiz mumkin. AND, NOT, OR kabi mantiqiy operatorni qo'shing:

title: "Tea in breakfast" AND "coffee"

Bu yerda soʻrovlar sintaksisi haqida koʻproq maʼlumot oling.

4. Oddiy dastur

Keling, oddiy dastur yaratamiz va ba'zi hujjatlarni indekslaymiz.

Birinchidan, biz xotira indeksini yaratamiz va unga ba'zi hujjatlarni qo'shamiz:

... Directory memoryIndex = new RAMDirectory();

StandardAnalyzer analyzer = new StandardAnalyzer();

IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); IndexWriter writter = new IndexWriter(memoryIndex, indexWriterConfig);

Document document = new Document();

document.add(new TextField("title", title, Field.Store.YES));

document.add(new TextField("body", body, Field.Store.YES));

writter.addDocument(document);

writter.close();


Bu erda biz TextField bilan hujjat yaratamiz va ularni IndexWriter yordamida indeksga qo'shamiz. TextField konstruktoridagi uchinchi argument maydon qiymati ham saqlanishi yoki saqlanmaganligini bildiradi.

Analizatorlar ma'lumotlarni yoki matnni bo'laklarga bo'lish, so'ngra ulardan to'xtash so'zlarini filtrlash uchun ishlatiladi. To'xtash so'zlari "a", "am", "is" va boshqalar kabi so'zlardir. Bular butunlay berilgan tilga bog'liq.

Keyinchalik, qidiruv so'rovini yaratamiz va qo'shilgan hujjat uchun indeksni qidiramiz:


Download 236,03 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish