自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java中通過Elasticsearch實(shí)現(xiàn)全局檢索功能的方法和步驟及源代碼

開發(fā) 后端
Elasticsearch是一個(gè)基于Lucene的開源、分布式、RESTful搜索引擎,它提供了一個(gè)分布式的全文搜索引擎,具有HTTP網(wǎng)絡(luò)接口,基于無模式的JSON文檔。具有自動(dòng)發(fā)現(xiàn)、分布式、可擴(kuò)展性、高可靠性、多功能性、易用性等特點(diǎn)。

以下是通過Java Client API使用Elasticsearch實(shí)現(xiàn)全局檢索功能的方法和步驟:

一、添加Elasticsearch Java客戶端依賴

首先需要在項(xiàng)目中添加Elasticsearch Java客戶端的依賴。從Maven倉庫中獲取Elasticsearch Java客戶端的依賴項(xiàng),將以下代碼添加到pom.xml文件中:

<dependencies>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>{version}</version>
    </dependency>
</dependencies>

其中{version}是Elasticsearch Java客戶端版本號(hào),可以在Elasticsearch官方網(wǎng)站上找到最新版本。

二、連接Elasticsearch

在Java程序中連接Elasticsearch需要使用RestHighLevelClient,下面是一個(gè)簡單的示例:

RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(new HttpHost("localhost", 9200, "http")));

在上面的代碼中,我們創(chuàng)建了一個(gè)RestHighLevelClient實(shí)例,用于連接名稱為localhost的Elasticsearch節(jié)點(diǎn),端口號(hào)為9200。如果您需要連接其他Elasticsearch節(jié)點(diǎn),可以修改host和port參數(shù)。

三、創(chuàng)建索引

在使用Elasticsearch進(jìn)行全局檢索之前,需要先創(chuàng)建一個(gè)索引。下面是一個(gè)簡單的示例:

CreateIndexRequest request = new CreateIndexRequest("my_index");
client.indices().create(request, RequestOptions.DEFAULT);

在上面的代碼中,我們創(chuàng)建了一個(gè)名為my_index的索引。如果該索引已經(jīng)存在,將不執(zhí)行任何操作。如果需要?jiǎng)?chuàng)建多個(gè)索引,可以重復(fù)使用上述代碼創(chuàng)建其他索引。

四、添加文檔

在創(chuàng)建索引之后,需要向該索引中添加一些文檔,以便進(jìn)行全局檢索。下面是一個(gè)簡單的示例:

IndexRequest request = new IndexRequest("my_index");
String jsonString = "{" +
        "\"user\":\"John\"," +
        "\"message\":\"hello\"" +
        "}";
request.source(jsonString, XContentType.JSON);
IndexResponse response = client.index(request, RequestOptions.DEFAULT);

在上面的代碼中,我們向名為my_index的索引中添加了一個(gè)文檔,該文檔包含user和message兩個(gè)字段。如果您需要添加多個(gè)文檔,可以重復(fù)使用上述代碼添加其他文檔。

五、執(zhí)行全局檢索

在添加一些文檔之后,可以執(zhí)行全局檢索來查找與給定條件匹配的所有文檔。下面是一個(gè)簡單的示例:

SearchRequest searchRequest = new SearchRequest("my_index"); 
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); 
searchSourceBuilder.query(QueryBuilders.matchQuery("message", "hello")); 
searchRequest.source(searchSourceBuilder); 
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

在上面的代碼中,我們執(zhí)行了一個(gè)全局檢索操作,以查找my_index索引中message字段中包含"hello"的所有文檔。使用SearchRequest和SearchSourceBuilder類來指定檢索條件和索引名稱。在檢索完成后,可以從SearchResponse對(duì)象中獲取匹配的文檔列表。

六、處理結(jié)果并展示

我們需要處理檢索結(jié)果,并將結(jié)果顯示給用戶。以下是一個(gè)簡單的示例,它將搜索結(jié)果中的每個(gè)文檔的message字段提取出來,并顯示給用戶:

SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
    String sourceAsString = hit.getSourceAsString();
    Map<String, Object> sourceAsMap = hit.getSourceAsMap();
    String message = sourceAsMap.get("message").toString();
    System.out.println(message);
}

在上面的代碼中,我們首先獲取到SearchHits對(duì)象,然后遍歷每個(gè)SearchHit,將每個(gè)文檔的message字段提取出來并顯示??梢詫⑸鲜龃a嵌入到你的應(yīng)用程序的檢索結(jié)果處理邏輯中,以向用戶展示搜索結(jié)果。

七、關(guān)閉Elasticsearch連接

當(dāng)你的程序完成Elasticsearch的全局檢索操作后,需要關(guān)閉與Elasticsearch的連接,以下是一個(gè)簡單的示例:

client.close();

在上面的代碼中,我們關(guān)閉了與Elasticsearch的連接。在使用任何資源后,都應(yīng)關(guān)閉以避免資源泄漏。

通過以上幾個(gè)步驟,我們可以通過Java程序使用Elasticsearch進(jìn)行全局檢索。需要注意的是,Elasticsearch有很多強(qiáng)大的功能,例如排序、分頁、聚合等,可以更復(fù)雜的搜索需求。你可以參考Elasticsearch官方文檔,了解更多關(guān)于Elasticsearch的使用。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2020-11-13 13:05:27

Java開發(fā)代碼

2023-12-08 09:15:53

Java單表樹形結(jié)構(gòu)Tree

2023-12-26 12:12:57

檢索調(diào)優(yōu)Scripting場景

2022-01-04 19:15:33

ElasticsearSpring BootLogstash

2009-08-18 13:56:18

開源代碼Linux系統(tǒng)云計(jì)算

2023-11-20 08:39:24

Spring定時(shí)任務(wù)

2023-11-27 08:15:26

Spring訂單取消

2009-08-12 10:29:31

C#實(shí)現(xiàn)全局鉤子

2023-12-13 13:28:00

Spring全局異常處理架構(gòu)

2023-01-29 16:15:59

開源代碼

2021-07-07 05:53:23

PythonPython 語法加密源代碼

2024-06-05 08:14:26

SpringElasticsea人臉數(shù)據(jù)

2009-10-10 09:27:42

Java泛型通用方法

2018-08-22 14:25:42

搜索LuceneQuery

2010-03-17 17:11:04

Java線程通信

2011-06-10 16:33:54

iOS 5蘋果

2009-08-14 11:24:10

MySQL全文檢索MySQL Like索

2021-11-30 14:50:29

編譯源代碼開源

2011-03-31 17:14:56

MySQL安裝

2012-07-10 13:29:30

Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)