Rumah >Java >javaTutorial >Menggunakan Solr untuk carian teks penuh dalam pembangunan API Java
Dengan perkembangan Internet dan pertumbuhan maklumat yang pesat, jumlah maklumat yang kini boleh kami capai dan perolehi adalah sangat besar sama ada maklumat yang diperoleh daripada laman web, kesusasteraan atau kehidupan seharian, kami memerlukan cara yang cekap untuk memproses dan mengurus. Carian teks penuh ialah cara yang sangat cekap dan biasa digunakan untuk mencari dan mengekstrak maklumat yang kami perlukan melalui kata kunci atau frasa, dan Solr ialah alat yang sangat sesuai untuk pembangunan carian teks penuh.
Artikel ini akan memperkenalkan konsep asas Solr dan cara menggunakan Solr untuk carian teks penuh dalam pembangunan API Java.
1. Pengenalan kepada Solr
Solr pada asasnya ialah platform carian perusahaan sumber terbuka, yang berasaskan perpustakaan Apache Lucene Java dan menyediakan beberapa API REST yang mudah. Menurut pengenalan rasmi Solr, ia termasuk ciri-ciri berikut terutamanya:
Sebagai a Platform carian peringkat perusahaan, Solr menyediakan fungsi carian yang sangat lengkap dan kaedah konfigurasi yang fleksibel, yang memudahkan kami membangunkan modul carian dalam pembangunan sebenar. Di bawah ini kami akan memberi tumpuan kepada cara menggunakan Solr untuk carian teks penuh dalam pembangunan API Java.
2. Gunakan Solr untuk carian teks penuh
2.1 Pasang Solr
Pertama, kita perlu memasang Solr dalam persekitaran atau pelayan setempat. Solr secara rasmi menyediakan cara yang sangat mudah untuk memasang dan menjalankan Solr:
2.2 Cipta Solr Core dan tentukan Skema
Solr Core ialah konsep teras dalam Solr Ia setara dengan persekitaran carian bebas, termasuk pengindeksan data dan permintaan carian . Dalam Solr, kita boleh mencipta berbilang Teras, dan setiap Teras boleh mempunyai konfigurasi bebas dan set data.
Dalam Solr, kita perlu mencipta Teras dahulu dan kemudian mentakrifkan Skema untuk carian. Skema mentakrifkan medan data, jenis, indeks dan atribut lain, yang akan menjejaskan kecekapan dan ketepatan carian.
Anda boleh menggunakan Skema Solr sendiri atau Skema yang ditentukan pengguna untuk menentukan atribut medan yang diperlukan untuk carian Di sini kami memperkenalkan menggunakan Skema lalai Solr.
Gunakan Skema lalai Solr sendiri:
Buat teras:
bin/solr create_core -c <core name>
Kosongkan semua medan yang dibuat:
rreeeTambah medan:
curl http://localhost:8983/solr/<core name>/schema -H 'Content-type:application/json' -d '{"delete-all-fields":{}}'
Gunakan Skema yang ditentukan pengguna:
Pengguna boleh Menyesuaikan Skema untuk memenuhi keperluan aplikasi yang berbeza Solr menyediakan API Skema. Menyediakan penambahan Skema yang mudah untuk pencipta.
Cipta teras:
curl http://localhost:8983/solr/<core name>/schema -H 'Content-type:application/json' -d ' { "add-field":{ "name":"field_name", "type":"string", "stored":true } }'
Tambah medan:
bin/solr create_core -c <core name>
{ "add-field-type": { "name":"test_fieldType","class":"solr.TextField","indexAnalyzer":{ "tokenizer":{ "class":"solr.StandardTokenizerFactory" },"filters":[ { "class":"solr.StopFilterFactory", "ignoreCase":true, "words":"stopword.txt", "format":"snowball", "enablePositionIncrements":true },{ "class":"solr.SnowballPorterFilterFactory", "language":"English" } ], "queryAnalyzer":{ "tokenizer":{ "class":"solr.StandardTokenizerFactory" },"filters":[ { "class":"solr.StopFilterFactory", "ignoreCase":true, "words":"stopword.txt", "format":"snowball", "enablePositionIncrements":true },{ "class":"solr.SnowballPorterFilterFactory", "language":"English" } ] } } }
adalah ditambah dengan jayanya.
Nyatakan Skema ini dalam konfigurasi Solr:
Pergi ke direktori ${core}/conf untuk mengubah suai solrconfig.xml dan tambah kod berikut:
{ "add-field": { "name": "title", "type": "text_en", "stored": true } }
2. Gunakan Solr dalam Java API untuk carian teks penuh
Seterusnya, kami akan memperkenalkan cara menggunakan API Java Solr untuk carian teks penuh dalam aplikasi Web Java.
Dalam projek Maven, kami perlu menambah kebergantungan SolrJ secara rasminya:
<schemaFactory class="ClassicIndexSchemaFactory"/> <schema name="schema_name" version="1.5"> <field name="title" type="text_en" indexed="true" stored="true" /> </schema>
<dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>8.2.0</version> </dependency>Kemudian, kita perlu mencipta objek SolrQuery, yang digunakan untuk menetapkan parameter carian, termasuk kata kunci carian, peraturan pengisihan, syarat penapis, dsb.
String solrUrl = "http://localhost:8983/solr/core_name"; SolrClient solr = new HttpSolrClient.Builder(solrUrl).build();Akhir sekali, kami boleh melakukan carian melalui kaedah solr.query(query), dan QueryResponse yang dikembalikan mengandungi hasil carian dan maklumat metadata yang berkaitan. Kita perlu mendapatkan senarai hasil carian melalui kaedah response.getResults().
SolrQuery query = new SolrQuery(); query.setQuery("keyword"); query.setStart(0); query.setRows(10); query.setSort("sort_field", SolrQuery.ORDER.asc); query.addFilterQuery("filter_field:filter_value");Dalam pembangunan sebenar, kami juga boleh melakukan pemprosesan sekunder pada hasil carian seperti yang diperlukan, seperti menukar hasil ke dalam format JSON atau objek Java.
QueryResponse response = solr.query(query); SolrDocumentList results = response.getResults();Di atas ialah proses asas menggunakan Solr untuk carian teks penuh dalam pembangunan API Java. Solr menyediakan fungsi carian yang sangat lengkap dan sokongan Java API, membolehkan kami membangunkan modul carian yang cekap dan tepat dengan mudah untuk memberikan pengguna pengalaman carian yang lebih baik.
Atas ialah kandungan terperinci Menggunakan Solr untuk carian teks penuh dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!