Rumah > Java > javaTutorial > teks badan

Menggunakan Solr untuk carian teks penuh dalam pembangunan API Java

WBOY
Lepaskan: 2023-06-18 10:41:19
asal
1381 orang telah melayarinya

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:

  • Carian teks penuh
  • Carian masa nyata
  • Carian tapak web
  • Carian teragih
  • Penyepaduan pangkalan data
  • Menghuraikan berbilang format fail
  • Eksport berbilang format fail
  • Konfigurasi luaran

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:

  • Muat turun alamat Solr: https://lucene.apache.org/solr/downloads.html.
  • Nyahzip fail: tar -zxvf solr-x.x.x.zip.
  • Masukkan folder nyahmampat: cd solr-x.x.x.
  • Mulakan Solr: mulakan bin/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:

  1. Buat teras:

    bin/solr create_core -c <core name>
    Salin selepas log masuk
    Salin selepas log masuk
  2. Kosongkan semua medan yang dibuat:

    rreee
  3. Tambah medan:

    curl http://localhost:8983/solr/<core name>/schema -H 'Content-type:application/json' -d '{"delete-all-fields":{}}'
    Salin selepas log masuk
  4. Mulakan semula perkhidmatan Solr

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.

  1. 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
        }
     }'
    Salin selepas log masuk
  2. Tambah medan:

    • Tambah jenis medan:
      ke pelayan Solr Hantar permintaan POST dengan content_type ditetapkan ke application/json
    bin/solr create_core -c <core name>
    Salin selepas log masuk
    Salin selepas log masuk
    • Tambah medan (tajuk): Jawapan akan dikembalikan selepas medan
    {   
         "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"   
                   }   
                 ]   
              }   
           }   
    }
    Salin selepas log masuk

    adalah ditambah dengan jayanya.

  3. 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
         }
    }
    Salin selepas log masuk

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.

  1. Tambah kebergantungan SolrJ

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>
Salin selepas log masuk
    <🎜. >Gunakan SolrJ untuk mencari dalam kod
Dalam kod Java, kami boleh menggunakan QueryResponse dan SolrClient yang disediakan oleh SolrJ untuk melaksanakan operasi carian. Data yang ditanya boleh dilihat sebagai pasangan nilai kunci.

Pertama, kita perlu mencipta contoh SolrClient. Dalam SolrJ, SolrClient ialah pelanggan Solr dan menyediakan kaedah untuk memanggil terus Solr REST API.

<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>8.2.0</version>
</dependency>
Salin selepas log masuk

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();
Salin selepas log masuk

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");
Salin selepas log masuk

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();
Salin selepas log masuk
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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan