Rumah Java javaTutorial Menggunakan Elasticsearch untuk carian data dalam pembangunan API Java

Menggunakan Elasticsearch untuk carian data dalam pembangunan API Java

Jun 18, 2023 pm 06:46 PM
elasticsearch java api Carian data

Dengan perkembangan pesat teknologi Internet, skala dan kerumitan aplikasi moden semakin meningkat, dan aplikasi ini biasanya melibatkan sejumlah besar carian dan analisis data. Untuk menyelesaikan masalah ini, semakin ramai pembangun mula menggunakan enjin carian teks penuh untuk membantu mereka memproses data besar-besaran.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan Elasticsearch untuk carian data, dan untuk aplikasi dalam proses pembangunan API Java, kami akan memperkenalkan antara muka API yang disediakan oleh Elasticsearch, serta proses dan teknik pelaksanaan .

  1. Pengenalan Elasticsearch

Elasticsearch ialah enjin carian teks penuh sumber terbuka yang dibina pada perpustakaan carian teks enjin carian Apache Lucene. Elasticsearch mempunyai ciri-ciri teragih, ketersediaan tinggi, carian masa nyata dan analisis Ia boleh menyimpan, mendapatkan semula dan menganalisis sejumlah besar data dengan cepat. Dalam senario carian data, Elasticsearch ialah penyelesaian yang sangat popular dan digunakan secara meluas kerana ia menyediakan antara muka API yang berkuasa dan mudah digunakan yang boleh disepadukan dengan cepat ke dalam aplikasi Java.

  1. Konsep asas Elasticsearch

Apabila menggunakan Elasticsearch untuk carian data, terdapat beberapa konsep dan istilah asas yang perlu anda fahami:

(1 ) Indeks

Dalam Elasticsearch, indeks ialah bekas logik yang digunakan untuk menyimpan data, yang serupa dengan jadual dalam pangkalan data hubungan. Setiap indeks boleh mengandungi berbilang dokumen dan setiap dokumen ialah struktur data dalam format JSON.

(2) Taip

Dalam Elasticsearch, setiap indeks boleh mengandungi berbilang jenis (jenis), dan setiap jenis boleh menentukan medannya sendiri. Jenis telah ditamatkan dalam versi terkini Elasticsearch, tetapi masih digunakan sebagai pemilih dalam sesetengah API.

(3) Sharing dan replika

Dalam Elasticsearch, indeks boleh dibahagikan kepada berbilang serpihan (serpihan), dan setiap serpihan ialah indeks Lucene bebas. Sharding mengedarkan dan menyimpan data yang diindeks pada berbilang pelayan untuk mencapai storan dan pertanyaan yang diedarkan. Selain itu, Elasticsearch juga menyokong replika. Setiap serpihan boleh mempunyai berbilang replika untuk meningkatkan prestasi carian dan ketersediaan data.

(4) Nod dan kelompok

Elasticsearch ialah enjin carian teragih yang boleh berjalan pada berbilang nod. Nod ialah contoh Elasticsearch tunggal, dan keseluruhan kluster terdiri daripada berbilang nod. Nod boleh berkomunikasi antara satu sama lain dan bekerjasama untuk menyelesaikan tugas carian.

  1. Elasticsearch Java API

Elasticsearch menyediakan antara muka Java API yang kaya yang boleh disepadukan dengan mudah dengan aplikasi Java. Pembangun Java boleh menggunakan API berikut untuk pengindeksan, pertanyaan dan pengurusan data:

(1) API Indeks

API Indeks digunakan untuk mengindeks dokumen dalam format JSON ke dalam indeks Elasticsearch yang ditentukan. Ia menyokong pengindeksan kelompok, yang boleh mengindeks berbilang dokumen ke dalam indeks yang sama sekaligus.

(2) API Carian

API Carian digunakan untuk melaksanakan operasi carian ia menyokong pelbagai kaedah carian, termasuk carian teks penuh, carian medan, carian kabur, dsb.

(3) Padam API

Padam API digunakan untuk memadam indeks Elasticsearch yang ditentukan.

(4) Get API

Get API digunakan untuk mendapatkan dokumen berdasarkan indeks, jenis dan ID yang ditentukan.

(5) API Kemas Kini

API Kemas Kini digunakan untuk mengemas kini dokumen yang ditentukan.

Selain itu, Elasticsearch juga menyediakan banyak antara muka API lain, termasuk carian lokasi geografi, penonjolan teks, pengagregatan, dsb.

  1. Gunakan Elasticsearch untuk carian data

Sebelum menggunakan Elasticsearch untuk carian data, anda perlu memasang Elasticsearch dan mulakannya. Kemudian gunakan API Java untuk menyambung ke pelayan Elasticsearch, buat indeks dan tambah data pada indeks. Seterusnya, anda boleh mencari menggunakan API Carian. Berikut ialah contoh kod Java asas:

import java.net.InetAddress;

import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

public class ElasticsearchSearchDemo {

    public static void main(String[] args)
            throws Exception {

        // 设置集群名称
        Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();

        // 创建客户端
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300));

        // 搜索数据
        SearchResponse response = client.prepareSearch("books")
                .setQuery(QueryBuilders.matchQuery("title", "Java"))
                .get();

        // 打印结果
        for (SearchHit hit : response.getHits().getHits()) {
            System.out.println(hit.getSourceAsString());
        }

        // 关闭客户端
        client.close();
    }

}
Salin selepas log masuk

Kod di atas mencipta objek TransportClient, menyambung kepada perkhidmatan Elasticsearch tempatan dan menggunakan kaedah prepareSearch untuk melaksanakan operasi pertanyaan. Operasi pertanyaan ini melakukan carian kabur pada medan tajuk indeks buku dan mengeluarkan hasil carian.

  1. Ringkasan

Dalam era data hari ini, permintaan untuk carian dan analisis data semakin meningkat. Sebagai enjin carian teks penuh yang berkuasa, Elasticsearch mempunyai kelebihan pengedaran, ketersediaan tinggi, carian masa nyata dan analisis. Dalam senario pembangunan API Java, Elasticsearch menyediakan antara muka API yang kaya dan mudah digunakan, menyediakan pembangun dengan keupayaan carian data yang mudah. Saya harap artikel ini dapat membantu pembangun Java menggunakan Elasticsearch dengan lebih baik untuk carian data.

Atas ialah kandungan terperinci Menggunakan Elasticsearch untuk carian data dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menukar pdf deepseek Cara menukar pdf deepseek Feb 19, 2025 pm 05:24 PM

DeepSeek tidak dapat menukar fail terus ke PDF. Bergantung pada jenis fail, anda boleh menggunakan kaedah yang berbeza: dokumen biasa (Word, Excel, PowerPoint): Gunakan Microsoft Office, LibreOffice dan perisian lain untuk dieksport sebagai PDF. Imej: Simpan sebagai PDF Menggunakan Image Viewer atau Perisian Pemprosesan Imej. Halaman Web: Gunakan fungsi "Print Into PDF" penyemak imbas atau laman web yang berdedikasi ke alat PDF. Format yang tidak biasa: Cari penukar yang betul dan tukarnya ke PDF. Adalah penting untuk memilih alat yang betul dan membangunkan pelan berdasarkan keadaan sebenar.

Apakah tapak web antara muka API percuma? Apakah tapak web antara muka API percuma? Jan 05, 2024 am 11:33 AM

Laman web antara muka api percuma: 1. UomgAPI: platform yang menyediakan perkhidmatan API percuma yang stabil dan pantas, dengan lebih daripada 100 antara muka API 2. api percuma: menyediakan pelbagai antara muka API percuma 3. API JSON: menyediakan antara muka API data percuma; . Platform Terbuka AutoNavi: Menyediakan antara muka API yang berkaitan dengan peta; 5. Pengecaman muka Muka++: Menyediakan antara muka API yang berkaitan dengan pengecaman muka: Menyediakan lebih seratus antara muka API percuma, sesuai untuk pelbagai keperluan sumber; 7. Data agregat, dsb.

Apakah protokol biasa untuk pengaturcaraan rangkaian Java? Apakah protokol biasa untuk pengaturcaraan rangkaian Java? Apr 15, 2024 am 11:33 AM

Protokol yang biasa digunakan dalam pengaturcaraan rangkaian Java termasuk: TCP/IP: digunakan untuk penghantaran data dan pengurusan sambungan yang boleh dipercayai. HTTP: digunakan untuk penghantaran data web. HTTPS: Versi HTTP selamat yang menggunakan penyulitan untuk menghantar data. UDP: Untuk pemindahan data yang cepat tetapi tidak stabil. JDBC: digunakan untuk berinteraksi dengan pangkalan data hubungan.

Apakah itu j2ee dan apakah teknologi yang disertakan Apakah itu j2ee dan apakah teknologi yang disertakan Apr 14, 2024 pm 09:06 PM

J2EE ialah platform Java yang direka untuk membangunkan aplikasi perusahaan dan termasuk teknologi berikut: Java Servlet dan JSPJava Enterprise Beans (EJB)Java Persistence API (JPA)Java API untuk XML Web Services (JAX-WS)JavaMailJava Message Service ( JMS)Java Transaction API (JTA) Penamaan Java dan Antara Muka Direktori (JNDI)

JAX-RS lwn. Spring MVC: Pertempuran antara gergasi RESTful JAX-RS lwn. Spring MVC: Pertempuran antara gergasi RESTful Feb 29, 2024 pm 05:16 PM

Pengenalan API RESTful telah menjadi sebahagian daripada aplikasi WEB moden. Mereka menyediakan pendekatan piawai untuk mencipta dan menggunakan perkhidmatan Web, dengan itu meningkatkan kemudahalihan, kebolehskalaan dan kemudahan penggunaan. Dalam ekosistem Java, JAX-RS dan springmvc ialah dua rangka kerja yang paling popular untuk membina API RESTful. Artikel ini akan melihat secara mendalam kedua-dua rangka kerja, membandingkan ciri, kelebihan dan keburukannya untuk membantu anda membuat keputusan termaklum. JAX-RS: JAX-RSAPI JAX-RS (JavaAPI untuk Perkhidmatan Web RESTful) ialah JAX-RSAPI standard yang dibangunkan oleh JavaEE untuk membangunkan REST

Bagaimana untuk menapis dan mencari data dalam React Query? Bagaimana untuk menapis dan mencari data dalam React Query? Sep 27, 2023 pm 05:05 PM

Bagaimana untuk melakukan penapisan dan carian data dalam ReactQuery? Dalam proses menggunakan ReactQuery untuk pengurusan data, kami sering menghadapi keperluan untuk menapis dan mencari data. Ciri ini boleh membantu kami mencari dan memaparkan data dalam keadaan tertentu dengan lebih mudah. Artikel ini akan memperkenalkan cara menggunakan fungsi penapisan dan carian dalam ReactQuery dan memberikan contoh kod khusus. ReactQuery ialah alat untuk menanyakan data dalam aplikasi React

Bagaimana untuk melaksanakan teknologi kontena docker di java Bagaimana untuk melaksanakan teknologi kontena docker di java Mar 08, 2024 am 10:19 AM

Kaedah pelaksanaan: 1. Tambahkan kebergantungan Docker Java API pada projek anda 2. Buat klien Docker 3. Gunakan klien Docker untuk mencipta dan memulakan bekas Docker;

Kajian mendalam tentang sintaks pertanyaan Elasticsearch dan pertempuran praktikal Kajian mendalam tentang sintaks pertanyaan Elasticsearch dan pertempuran praktikal Oct 03, 2023 am 08:42 AM

Kajian mendalam sintaks pertanyaan Elasticsearch dan pengenalan praktikal: Elasticsearch ialah enjin carian sumber terbuka berdasarkan Lucene Ia digunakan terutamanya untuk carian dan analisis yang diedarkan Ia digunakan secara meluas dalam carian teks penuh data berskala besar , sistem pengesyoran dan senario lain. Apabila menggunakan Elasticsearch untuk pertanyaan data, penggunaan fleksibel sintaks pertanyaan adalah kunci untuk meningkatkan kecekapan pertanyaan. Artikel ini akan menyelidiki sintaks pertanyaan Elasticsearch dan memberikannya berdasarkan kes sebenar.

See all articles