


Pembangunan Java: Bagaimana untuk melaksanakan enjin carian dan fungsi mendapatkan semula teks penuh
Pembangunan Java: Bagaimana untuk melaksanakan fungsi pencarian enjin carian dan teks penuh, contoh kod khusus diperlukan
Enjin carian dan perolehan teks penuh adalah fungsi penting dalam era Internet moden. Mereka bukan sahaja membantu pengguna mencari perkara yang mereka inginkan dengan cepat, mereka juga menyediakan pengalaman pengguna yang lebih baik untuk tapak web dan apl. Artikel ini akan memperkenalkan cara menggunakan Java untuk membangunkan enjin carian dan fungsi perolehan teks penuh, dan menyediakan beberapa contoh kod khusus.
- Gunakan perpustakaan Lucene untuk melaksanakan carian teks penuh
Lucene ialah perpustakaan enjin carian teks penuh sumber terbuka yang diselenggara oleh Yayasan Perisian Apache. Ia menyediakan API berkuasa yang boleh digunakan untuk membina enjin carian dan melaksanakan fungsi mendapatkan semula teks penuh.
Pertama, anda perlu menambah perpustakaan Lucene pada projek Java anda. Anda boleh mendapatkan versi Lucene terkini serta dokumentasi yang berkaitan dan kod sampel di https://lucene.apache.org/.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan Lucene untuk mengindeks dan mencari kandungan teks:
import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexWriter; 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.RAMDirectory; public class LuceneExample { public static void main(String[] args) throws Exception { // 创建索引存储目录 Directory directory = new RAMDirectory(); // 创建索引写入器 IndexWriter indexWriter = new IndexWriter(directory, new StandardAnalyzer()); // 创建文档并添加到索引中 Document doc1 = new Document(); doc1.add(new Field("content", "Java开发", Field.Store.YES, Field.Index.ANALYZED)); indexWriter.addDocument(doc1); Document doc2 = new Document(); doc2.add(new Field("content", "搜索引擎", Field.Store.YES, Field.Index.ANALYZED)); indexWriter.addDocument(doc2); indexWriter.close(); // 搜索文档 DirectoryReader reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); QueryParser parser = new QueryParser("content", new StandardAnalyzer()); Query query = parser.parse("Java"); TopDocs topDocs = searcher.search(query, 10); for (ScoreDoc scoreDoc : topDocs.scoreDocs) { Document document = searcher.doc(scoreDoc.doc); System.out.println("搜索结果: " + document.get("content")); } } }
Contoh di atas mula-mula mencipta direktori storan indeks berasaskan memori RAMDirectory
,然后通过IndexWriter
将文档添加到索引中。接下来,使用IndexSearcher
和QueryParser
Melakukan penghuraian pertanyaan carian dan operasi carian masing-masing, dan mencetak carian itu Hasilnya menunjukkan pelaksanaan fungsi carian.
- Gunakan Elasticsearch untuk melaksanakan enjin carian
Selain Lucene, anda juga boleh menggunakan Elasticsearch untuk membina enjin carian dan melaksanakan fungsi mendapatkan teks penuh. Elasticsearch ialah enjin carian masa nyata yang diedarkan berdasarkan Lucene, yang menyediakan keupayaan carian dan analisis yang lebih berkuasa.
Pertama, anda perlu memuat turun dan memasang Elasticsearch. Anda boleh mendapatkan versi Elasticsearch terkini bersama dokumentasi dan kod sampel yang berkaitan di https://www.elastic.co/downloads/elasticsearch.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan Java dan Elasticsearch untuk pembangunan enjin carian:
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.builder.SearchSourceBuilder; import java.io.IOException; public class ElasticsearchExample { public static void main(String[] args) throws IOException { // 创建Elasticsearch客户端 RestHighLevelClient client = new RestHighLevelClient(RestClient.builder("localhost:9200")); // 构建搜索请求 SearchRequest searchRequest = new SearchRequest("index_name"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("content", "Java")); searchSourceBuilder.size(10); searchSourceBuilder.timeout(TimeValue.timeValueSeconds(5)); searchRequest.source(searchSourceBuilder); // 执行搜索请求,并处理搜索结果 SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); for (SearchHit hit : searchResponse.getHits().getHits()) { System.out.println("搜索结果: " + hit.getSourceAsString()); } // 关闭Elasticsearch客户端 client.close(); } }
Contoh di atas menunjukkan cara menggunakan klien Java REST High Level Elasticsearch untuk pembinaan dan pelaksanaan permintaan carian dan mencetaknya melalui hasil Carian untuk menunjukkan pelaksanaan fungsi carian.
Artikel ini memperkenalkan cara menggunakan Java untuk membangunkan enjin carian dan fungsi perolehan teks penuh, serta menyediakan dua contoh Lucene dan Elasticsearch. Melalui contoh ini, anda boleh lebih memahami cara menggunakan kod khusus untuk melaksanakan enjin carian dan fungsi mendapatkan semula teks penuh. Harap artikel ini dapat membantu anda!
Atas ialah kandungan terperinci Pembangunan Java: Bagaimana untuk melaksanakan enjin carian dan fungsi mendapatkan semula teks penuh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


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

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa