国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

solr快速上手:整合SolrJ實(shí)現(xiàn)客戶端操作(九)

這篇具有很好參考價(jià)值的文章主要介紹了solr快速上手:整合SolrJ實(shí)現(xiàn)客戶端操作(九)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

0. 引言

我們前面學(xué)習(xí)了solr的服務(wù)端基礎(chǔ)操作,實(shí)際項(xiàng)目中我們還需要在客戶端調(diào)用solr,就像調(diào)用數(shù)據(jù)庫(kù)一樣,我們可以基于solrJ來(lái)實(shí)現(xiàn)對(duì)solr的客戶端操作

1. SolrJ簡(jiǎn)介

SolrJ 是 Solr官方提供的 Java 客戶端庫(kù),主要用于與 Solr 服務(wù)器進(jìn)行交互。內(nèi)部封裝了一組API,可以方便地實(shí)現(xiàn)對(duì)solr服務(wù)端的各類操作。

使用 SolrJ,可以通過(guò)編寫 Java 代碼來(lái)實(shí)現(xiàn)對(duì) Solr 的索引操作,比如增刪改查。同時(shí),SolrJ 還支持多種查詢方式,如簡(jiǎn)單查詢、復(fù)雜查詢、分頁(yè)查詢、聚合查詢等。同時(shí)也包括了對(duì)solr的索引管理、權(quán)限控制等操作

2. 項(xiàng)目引入SolrJ

1、引入jar包:https://central.sonatype.com/artifact/org.apache.solr/solr-solrj/8.2.0

<dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>8.2.0</version>
</dependency>

2、首先創(chuàng)建實(shí)體類,還是以我們?cè)谇皫坠?jié)創(chuàng)建的orders核心為例

注意:這里需要給字段上加上@Field注解,其值是該字段在solr中的字段名

@Data
public class Orders {

    @Field("id")
    private Long id;
    @Field("order_no")
    private String orderNo;
    @Field("address")
    private String address;
    @Field("product_name")
    private String productName;
    @Field("remarks")
    private String remarks;
    @Field("status")
    private Integer status;
    @Field("create_user")
    private String createUser;
    @Field("create_time")
    private Date createTime;
    @Field("labels")
    private List<String> labels;

}

3、創(chuàng)建一個(gè)配置類SolrProperties,用戶聲明配置項(xiàng)

@ConfigurationProperties(prefix = "solr")
@Component
@Data
public class SolrProperties {

    private String host;

    private Integer connectionTimeout;
    private Integer socketTimeout;

}

4、配置文件中添加對(duì)應(yīng)的配置項(xiàng)

# solr地址
solr.host=http://192.168.244.41:8983/solr
# 連接超時(shí)
solr.connectionTimeout=10000
# 讀取超時(shí)
solr.socketTimeout=3000

5、創(chuàng)建bean配置類SolrConfig,用于創(chuàng)建solr連接bean,注意這里我們演示的是單機(jī)版的solr,集群版的需要使用CloudSolrClient

@Configuration
public class SolrConfig {

    @Resource
    private SolrProperties solrProperties;

    @Bean
    public HttpSolrClient solrClient(){
        return new HttpSolrClient.Builder(solrProperties.getHost())
                .withConnectionTimeout(solrProperties.getConnectionTimeout())
                .withSocketTimeout(solrProperties.getSocketTimeout())
                .build();
    }
}

6、創(chuàng)建一個(gè)測(cè)試controller, 用于演示客戶端的操作,因?yàn)槲覀冎耙呀?jīng)配置了通過(guò)dataimport自動(dòng)同步mysql數(shù)據(jù)到solr。所以solr本身的增刪改,我們這里就不演示了,只要?jiǎng)h除數(shù)據(jù)庫(kù)后會(huì)自動(dòng)同步,主要演示實(shí)現(xiàn)查詢操作

@RestController
@RequestMapping("orders")
@AllArgsConstructor
public class OrdersController {
    private final HttpSolrClient solrClient;

    @GetMapping("search")
    public List<Orders> search(String productName, String address, String remarks, String labels) throws SolrServerException, IOException {
        SolrQuery query = new SolrQuery();
        if (!StringUtils.isEmpty(productName)) {
            query.setQuery("product_name:" + productName);
        }
        if (!StringUtils.isEmpty(address)) {
            query.setQuery("address:" + address);
        }
        if (!StringUtils.isEmpty(remarks)) {
            query.setQuery("remarks:" + remarks);
        }
        if (!StringUtils.isEmpty(labels)) {
            query.setQuery("labels:" + labels);
        }
        if(StringUtils.isEmpty(query.getQuery())){
            query.setQuery("*:*");
        }
        query.setStart(0);
        query.setRows(5);
        QueryResponse response = solrClient.query("orders",query);
        List<Orders> list = response.getBeans(Orders.class);
        return list;
    }

}

7、調(diào)用測(cè)試,結(jié)果數(shù)據(jù)正常顯示

solr快速上手:整合SolrJ實(shí)現(xiàn)客戶端操作(九)

8、如果想要實(shí)現(xiàn)更多的操作, 可以在SolrClient類中看到支持的方法

solr快速上手:整合SolrJ實(shí)現(xiàn)客戶端操作(九)

3. 配置集群

1、配置文件中增加zookeeper集群的地址配置,

solr.zk.host=192.168.244.42:2181,192.168.244.43:2181,192.168.244.44:2181

2、創(chuàng)建配置類,聲明CloudSolrClient

@Configuration
public class SolrConfig {

    @Value("${solr.zk.host}")
    private String zkHost;

    @Bean
    public CloudSolrClient cloudSolrClient(){
        if(StringUtils.isEmpty(zkHost)){
            return null;
        }
        return new CloudSolrClient.Builder(Arrays.asList(zkHost.split(",")))
                .build();
    }
}

3、后續(xù)使用cloudSolrClientbean來(lái)調(diào)用solr即可

4. 總結(jié)

更多的客戶端操作,還要大家自己去探索,但是直接使用SolrJ還是感覺有些復(fù)雜,能不能更加簡(jiǎn)易地實(shí)現(xiàn)客戶端操作呢,那就要提到我們的spring-data-solr了,下一節(jié),我們繼續(xù)學(xué)習(xí)!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-495898.html

到了這里,關(guān)于solr快速上手:整合SolrJ實(shí)現(xiàn)客戶端操作(九)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】

    基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】

    博主介紹: ?java資深開發(fā)工程師、Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、專注于Java技術(shù)領(lǐng)域和學(xué)生畢業(yè)項(xiàng)目實(shí)戰(zhàn),面試講解跟進(jìn),高校老師/講師/同行交流合作? 胡廣愿景: \\\"比特星球\\\",致力于幫助底層人員找到工作, 讓每個(gè)底層人員都能找到屬于自己的星球。 拓展學(xué)習(xí)領(lǐng)域,獲

    2024年02月19日
    瀏覽(26)
  • 十二、Feign客戶端整合Hystrix服務(wù)保護(hù)

    目錄 1、項(xiàng)目pom文件中引入feign客戶端依賴 2、編寫feign客戶端接口,并配置fallback回調(diào)方法的類 3、編寫controller,使用feign客戶端進(jìn)行RPC遠(yuǎn)程過(guò)程調(diào)用

    2024年02月05日
    瀏覽(21)
  • 網(wǎng)絡(luò)編程3——TCP Socket實(shí)現(xiàn)的客戶端服務(wù)器通信完整代碼(詳細(xì)注釋幫你快速理解)

    網(wǎng)絡(luò)編程3——TCP Socket實(shí)現(xiàn)的客戶端服務(wù)器通信完整代碼(詳細(xì)注釋幫你快速理解)

    本人是一個(gè)剛剛上路的IT新兵,菜鳥!分享一點(diǎn)自己的見解,如果有錯(cuò)誤的地方歡迎各位大佬蒞臨指導(dǎo),如果這篇文章可以幫助到你,勞請(qǐng)大家點(diǎn)贊轉(zhuǎn)發(fā)支持一下! 今天分享的內(nèi)容是TCP流套接字實(shí)現(xiàn)的客戶端與服務(wù)器的通信,一定要理解 DatagramSocket,DatagramPacket 這兩個(gè)類的作用以及方法

    2024年02月12日
    瀏覽(77)
  • Spring Boot 整合 Redis,使用 RedisTemplate 客戶端

    Spring Boot 整合 Redis,使用 RedisTemplate 客戶端

    1.1.1 添加依賴 redis 的依賴: 1.1.2 yml 配置文件 1.1.3 Config 配置文件 1.1.4 使用示例 注入 RedisTemplate,即可操作 Redis,簡(jiǎn)單示例如下: 1.2.1 RedisTemplate 簡(jiǎn)介 RedisTemplate 是 Spring Data Redis 項(xiàng)目的一部分,旨在簡(jiǎn)化在Java應(yīng)用程序中使用 Redis 的過(guò)程。它提供了一組簡(jiǎn)單的方法,可以在

    2024年02月09日
    瀏覽(28)
  • 快速搭建springboot websocket客戶端

    快速搭建springboot websocket客戶端

    WebSocket 是 HTML5 開始提供的一種在單個(gè) TCP 連接上進(jìn)行全雙工通訊的協(xié)議。 HTML5 定義的 WebSocket 協(xié)議,能更好的節(jié)省服務(wù)器資源和帶寬,并且能夠更實(shí)時(shí)地進(jìn)行通訊。 HTML5 定義的 WebSocket 協(xié)議,能更好的節(jié)省服務(wù)器資源和帶寬,并且能夠更實(shí)時(shí)地進(jìn)行通訊。 瀏覽器通過(guò) JavaSc

    2024年02月06日
    瀏覽(25)
  • 開源對(duì)象存儲(chǔ)系統(tǒng)minio部署配置與SpringBoot客戶端整合訪問(wèn)

    開源對(duì)象存儲(chǔ)系統(tǒng)minio部署配置與SpringBoot客戶端整合訪問(wèn)

    官方介紹: MinIO 提供高性能、與S3 兼容的對(duì)象存儲(chǔ)系統(tǒng),讓你自己能夠構(gòu)建自己的私有云儲(chǔ)存服務(wù)。在 GNU AGPL v3 下是 100% 開源的。 部署簡(jiǎn)單,只有一個(gè)minio可執(zhí)行文件。 高性能,在 32 個(gè) NVMe 驅(qū)動(dòng)器節(jié)點(diǎn)和 100Gbe 網(wǎng)絡(luò)上發(fā)布的 GET/PUT 結(jié)果超過(guò) 325 GiB/秒和 165 GiB/秒。 Kubernetes原

    2024年02月09日
    瀏覽(25)
  • 如何快速搭建springboot+前后端分離(vue),多商戶客戶端實(shí)現(xiàn)微信小程序+ios+app使用uniapp(一處編寫,處處編譯)

    如何快速搭建springboot+前后端分離(vue),多商戶客戶端實(shí)現(xiàn)微信小程序+ios+app使用uniapp(一處編寫,處處編譯)

    kxmalls外賣生鮮多商戶,針對(duì)中小商戶、企業(yè)和個(gè)人學(xué)習(xí)者開發(fā)。使用Java編碼,采用SpringBoot、Mybatis-Plus等易用框架,適合個(gè)人學(xué)習(xí)研究。同時(shí)支持單機(jī)部署、集群部署,用戶與店鋪范圍動(dòng)態(tài)定位,中小商戶企業(yè)可根據(jù)業(yè)務(wù)動(dòng)態(tài)擴(kuò)容。kxmalls使用uniapp前端框架,可同時(shí)編譯到 微

    2024年01月25日
    瀏覽(92)
  • 使用Flutter構(gòu)建ChatGPT客戶端:快速入門指南

    使用Flutter構(gòu)建ChatGPT客戶端:快速入門指南

    在本篇博客文章中,我們將通過(guò)OpenAI的API構(gòu)建一個(gè)簡(jiǎn)單的對(duì)話界面,與ChatGPT進(jìn)行聊天。 近來(lái)OpenAI和ChatGPT的熱度很高,尤其是最近發(fā)布的GPT-4。這類工具的大量使用案例已經(jīng)涌現(xiàn)出來(lái),但目前人們最常用ChatGPT的方式是通過(guò)chat.openai.com進(jìn)行聊天。我一直在使用ChatGPT來(lái)激發(fā)靈感、

    2024年02月05日
    瀏覽(21)
  • Idea+maven+springboot項(xiàng)目搭建系列--2 整合Rabbitmq完成客戶端&服務(wù)器端消息收發(fā)

    Idea+maven+springboot項(xiàng)目搭建系列--2 整合Rabbitmq完成客戶端&服務(wù)器端消息收發(fā)

    前言:本文通過(guò)springBoot -maven 框架,對(duì)Rabbitmq 進(jìn)行整合,完成客戶端消息的發(fā)送和消費(fèi); 1 為什么要使用Rabbitmq: RabbitMQ 是一個(gè)可靠的、靈活的、開源的消息中間件,具有以下優(yōu)點(diǎn): 異步通信:RabbitMQ 支持異步通信,使得消息發(fā)送者和接收者能夠異步處理,提高了系統(tǒng)性能和

    2024年02月07日
    瀏覽(31)
  • C#搭建Socket服務(wù)器與客戶端,助你快速入門(極簡(jiǎn)版)

    C#搭建Socket服務(wù)器與客戶端,助你快速入門(極簡(jiǎn)版)

    一、服務(wù)器的搭建 新建一個(gè)C#控制臺(tái)應(yīng)用,用于搭建服務(wù)器。 注:serverManager除了接收消息,也可以發(fā)送消息?;境吮O(jiān)聽,其他活它都干。 二、客戶端的搭建 再建一個(gè)C#控制臺(tái)應(yīng)用,用于搭建客戶端。 搭建好之后,先運(yùn)行服務(wù)器端, 再運(yùn)行客戶端。 一個(gè)簡(jiǎn)單的服務(wù)器和

    2024年02月09日
    瀏覽(99)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包