Bagaimana untuk melaksanakan pengambilan dan carian teks penuh dalam Java
Cara melakukan pengambilan dan carian teks penuh dalam Java
Pendapatan dan carian teks penuh ialah teknik untuk mencari kata kunci atau frasa tertentu dalam data teks berskala besar. Dalam aplikasi yang memproses sejumlah besar data teks, seperti enjin carian, sistem e-mel dan sistem pengurusan dokumen, perolehan teks penuh dan fungsi carian adalah sangat penting.
Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java menyediakan banyak perpustakaan dan alatan yang boleh membantu kami melaksanakan fungsi perolehan dan carian teks penuh. Artikel ini akan memperkenalkan cara menggunakan pustaka Lucene untuk melaksanakan pencarian dan carian teks penuh, serta menyediakan beberapa contoh kod khusus.
1. Memperkenalkan perpustakaan Lucene
Pertama, kita perlu memperkenalkan perpustakaan Lucene ke dalam projek. Pustaka Lucene boleh diperkenalkan ke dalam projek Maven dengan cara berikut:
<dependencies> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>8.10.1</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-common</artifactId> <version>8.10.1</version> </dependency> </dependencies>
2 Cipta indeks
Sebelum melakukan carian teks penuh, kita perlu mencipta indeks terlebih dahulu. Indeks ini mengandungi maklumat tentang data teks yang akan dicari supaya kami boleh melakukan operasi carian seterusnya. Berikut ialah contoh kod mudah untuk mencipta indeks:
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import java.io.IOException; import java.nio.file.Paths; public class Indexer { private IndexWriter indexWriter; public Indexer(String indexDir) throws IOException { Directory dir = FSDirectory.open(Paths.get(indexDir)); Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig config = new IndexWriterConfig(analyzer); indexWriter = new IndexWriter(dir, config); } public void close() throws IOException { indexWriter.close(); } public void addDocument(String content) throws IOException { Document doc = new Document(); doc.add(new TextField("content", content, Field.Store.YES)); indexWriter.addDocument(doc); } }
Dalam kod contoh di atas, kami menggunakan IndexWriter
untuk mencipta indeks dan menggunakan TextField
untuk menentukan medan . Apabila menambah kandungan untuk diindeks pada indeks, kita perlu mencipta objek Document
dahulu, kemudian menambah medan pada objek, dan akhirnya memanggil kaedah addDocument
untuk menambah < kod>Dokumen Objek ditambah pada indeks. IndexWriter
来创建索引,并使用TextField
来定义要索引的字段。将要索引的内容添加到索引中时,我们需要先创建一个Document
对象,然后将字段添加到该对象中,最后调用addDocument
方法将Document
对象添加到索引中。
3. 执行搜索
创建完索引后,我们就可以进行搜索操作了。以下是一个简单的搜索示例代码:
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexReader; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import java.io.IOException; import java.nio.file.Paths; public class Searcher { private IndexSearcher indexSearcher; private QueryParser queryParser; public Searcher(String indexDir) throws IOException { Directory dir = FSDirectory.open(Paths.get(indexDir)); Analyzer analyzer = new StandardAnalyzer(); IndexReader indexReader = DirectoryReader.open(dir); indexSearcher = new IndexSearcher(indexReader); queryParser = new QueryParser("content", analyzer); } public ScoreDoc[] search(String queryString, int numResults) throws Exception { Query query = queryParser.parse(queryString); TopDocs topDocs = indexSearcher.search(query, numResults); return topDocs.scoreDocs; } public Document getDocument(int docID) throws IOException { return indexSearcher.doc(docID); } }
在上面的示例代码中,我们使用IndexSearcher
来执行搜索操作。在执行搜索之前,我们需要先创建一个Query
对象来表示要搜索的查询,并使用QueryParser
来解析查询字符串为Query
对象。然后,我们使用IndexSearcher
的search
方法执行搜索,并返回搜索结果的排名。
4. 使用示例
下面是一个使用全文检索和搜索功能的示例代码:
public class Main { public static void main(String[] args) { String indexDir = "/path/to/index/dir"; try { Indexer indexer = new Indexer(indexDir); indexer.addDocument("Hello, world!"); indexer.addDocument("Java is a programming language."); indexer.addDocument("Lucene is a full-text search engine."); indexer.close(); Searcher searcher = new Searcher(indexDir); ScoreDoc[] results = searcher.search("Java", 10); for (ScoreDoc result : results) { Document doc = searcher.getDocument(result.doc); System.out.println(doc.getField("content").stringValue()); } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
在上面的示例代码中,我们首先创建一个Indexer
来创建索引,并添加一些文本数据。然后,我们创建一个Searcher
IndexSearcher
untuk melaksanakan operasi carian. Sebelum melakukan carian, kita perlu mencipta objek Query
untuk mewakili pertanyaan yang akan dicari dan menggunakan QueryParser
untuk menghuraikan rentetan pertanyaan ke dalam Query
objek. Kami kemudian menggunakan kaedah carian
IndexSearcher
untuk melakukan carian dan mengembalikan kedudukan hasil carian. 🎜🎜4 Contoh Penggunaan🎜🎜Berikut ialah contoh kod yang menggunakan fungsi pencarian dan carian teks penuh: 🎜rrreee🎜Dalam kod contoh di atas, kami mula-mula mencipta Pencari
untuk melakukan carian dan mencetak kandungan teks hasil carian. 🎜🎜Melalui kod sampel di atas, kami boleh melaksanakan fungsi pencarian dan carian teks penuh dengan mudah di Java menggunakan perpustakaan Lucene. Menggunakan Lucene, kami boleh mencari kata kunci atau frasa tertentu dengan cekap dalam data teks berskala besar, dengan itu meningkatkan kecekapan dan prestasi aplikasi pemprosesan teks. 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengambilan dan carian teks penuh dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara membuat perolehan teks penuh dan carian dalam Java Dapatkan semula dan carian teks penuh ialah teknik untuk mencari kata kunci atau frasa tertentu dalam data teks berskala besar. Dalam aplikasi yang memproses sejumlah besar data teks, seperti enjin carian, sistem e-mel dan sistem pengurusan dokumen, perolehan teks penuh dan fungsi carian adalah sangat penting. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java menyediakan banyak perpustakaan dan alatan yang boleh membantu kami melaksanakan fungsi pencarian dan pencarian teks penuh. Artikel ini akan memperkenalkan cara menggunakan pustaka Lucene untuk melaksanakan pengambilan dan carian teks penuh, dan menyediakan a

ChatGPTJava: Bagaimana untuk melaksanakan penjanaan dan pengoptimuman kod pintar Pengenalan: Dengan perkembangan pesat teknologi kecerdasan buatan, penjanaan dan pengoptimuman kod pintar telah menjadi topik hangat dalam bidang pengaturcaraan. ChatGPT ialah model bahasa yang berkuasa berdasarkan OpenAI yang membolehkan interaksi antara bahasa semula jadi dan mesin. Artikel ini akan memperkenalkan cara menggunakan ChatGPT untuk melaksanakan penjanaan kod pintar dan operasi pengoptimuman, serta menyediakan beberapa contoh kod khusus. 1. Penjanaan kod pintar: Gunakan ChatGPT untuk membina penjanaan kod pintar

Konvensyen penamaan Java menjadikan program lebih mudah difahami dengan menjadikannya lebih mudah dibaca. Di Jawa, nama kelas secara amnya mestilah kata nama, dalam bentuk tajuk bermula dengan huruf besar, dengan huruf pertama setiap perkataan dihuruf besar. Nama antara muka secara amnya mestilah kata sifat, dalam bentuk tajuk, bermula dengan huruf besar, dengan huruf pertama setiap perkataan dihuruf besar. Mengapa anda perlu mengikut piawaian penamaan Java Kurangkan usaha yang diperlukan untuk membaca dan memahami kod sumber. Membenarkan semakan kod menumpukan pada isu yang lebih penting daripada sintaks dan standard penamaan. Dayakan alat semakan kualiti kod untuk memberi tumpuan terutamanya pada isu penting dan bukannya sintaks dan pilihan gaya. Konvensyen Penamaan untuk Pengecam Jenis Berbeza Nama pakej hendaklah semua huruf kecil. Contoh packagecom.tutorialspoint;Nama antara muka antara muka hendaklah dalam huruf besar

Bagaimana untuk menyelesaikan pengecualian format data Java (DataFormatException) Dalam pengaturcaraan Java, kita sering menghadapi pelbagai situasi yang tidak normal. Antaranya, pengecualian format data (DataFormatException) adalah masalah biasa tetapi juga sangat mencabar. Pengecualian ini akan dibuang apabila data input tidak dapat memenuhi keperluan format yang ditentukan. Menyelesaikan anomali ini memerlukan kemahiran dan pengalaman tertentu. Artikel ini akan memperincikan cara menyelesaikan pengecualian format data Java dan menyediakan beberapa contoh kod

ChatGPTJava: Bagaimana untuk melaksanakan pengekstrakan maklumat pintar dan pemprosesan berstruktur, contoh kod khusus diperlukan Pengenalan: Dengan perkembangan pesat teknologi kecerdasan buatan, pengekstrakan maklumat pintar dan pemprosesan berstruktur memainkan peranan yang semakin penting dalam bidang pemprosesan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ChatGPTJava untuk melaksanakan pengekstrakan maklumat pintar dan fungsi pemprosesan berstruktur, dan menyediakan contoh kod khusus. 1. Pengekstrakan maklumat pintar Pengekstrakan maklumat pintar merujuk kepada proses mengekstrak maklumat utama daripada data tidak berstruktur. Dalam Ja

Bagaimana untuk melaksanakan algoritma isihan radix menggunakan Java? Algoritma isihan radix ialah algoritma isihan bukan perbandingan yang mengisih unsur berdasarkan nilai bitnya. Idea terasnya adalah untuk mengumpulkan nombor yang akan diisih mengikut unit, puluh, ratusan dan digit lain, dan kemudian mengisih setiap digit secara bergilir-gilir untuk akhirnya mendapatkan urutan tertib. Berikut akan memperkenalkan secara terperinci cara melaksanakan algoritma isihan radix menggunakan Java dan memberikan contoh kod. Pertama, algoritma pengisihan radix perlu menyediakan tatasusunan dua dimensi untuk menyimpan nombor yang hendak diisih. Bilangan baris dalam tatasusunan ditentukan oleh bilangan bit, contohnya

Menambah elemen baharu pada tatasusunan ialah operasi biasa di Jawa dan boleh dicapai menggunakan pelbagai kaedah. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk menambah elemen pada tatasusunan dan memberikan contoh kod yang sepadan. 1. Cara biasa untuk menggunakan tatasusunan baharu ialah mencipta tatasusunan baharu, menyalin elemen tatasusunan asal ke tatasusunan baharu dan menambah elemen baharu pada penghujung tatasusunan baharu. Langkah-langkah khusus adalah seperti berikut: Buat tatasusunan baharu yang saiznya 1 lebih besar daripada tatasusunan asal. Ini kerana elemen baharu sedang ditambah. Salin elemen tatasusunan asal ke tatasusunan baharu. Tambahkan pada penghujung tatasusunan baharu

Cara melaksanakan sistem beli-belah runcit Java switch dengan fungsi perkongsian sosial Dengan perkembangan teknologi dan populariti media sosial, semakin ramai orang terbiasa berkongsi pengalaman pembelian dan pemikiran mereka semasa membeli-belah. Bagi memenuhi keperluan pengguna, sistem membeli-belah yang baik bukan sahaja perlu menyelesaikan pembelian dengan mudah dan cepat, tetapi juga perlu menyediakan fungsi perkongsian sosial. Artikel ini akan memperkenalkan cara melaksanakan sistem beli-belah runcit suis Java dengan fungsi perkongsian sosial. Pertama, kita perlu menentukan saluran perkongsian sosial yang akan dilaksanakan termasuk WeChat, Weibo, QQ, dll. Di Jawa, anda boleh menggunakan yang ketiga
