zoukankan      html  css  js  c++  java
  • solr7.7.0与 springboot 编码 (五)

    1接上篇 设置中文分词。

    2 现在开始,我这里着重码代码,也可在solr页面自己去手动添加索引,设置数据库连接批量导入索引等,(这里不在做介绍)

    3 springboot与solr7集成环境搭建:

    3.1. 创建maven工程,下面是依赖

     <dependencies>
            <!-- solr依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-solr</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    

      

    2 配置文件:配置solr  

    #solr配置
    spring.data.solr.host=http://XXX:8081/solr7/new_core

    yml格式的配置改成对应风格的配置;

    3编写实体类

    package com.demo.entity;
    
    import lombok.Data;
    import org.apache.solr.client.solrj.beans.Field;
    import org.springframework.data.annotation.Id;
    import org.springframework.data.solr.core.mapping.SolrDocument;
    
    import java.io.Serializable;
    
    /**
     *
     * @author xxx
     * @version 1.0
     * @date 2020/1/10/010 10:34
     **/
    @Data
    @SolrDocument(solrCoreName = "new_core")
    public class Book implements Serializable {
    
        /**
         * id
         */
        @Id
        @Field
        private int id;
    
        /**
         * 内容
         */
        @Field("content_ik")
        private String content;
    
        /**
         * 标题
         */
        @Field("title_ik")
        private String title;
    
    
        /**
         * name  这个没设置中文分词
         */
        @Field("name")
        private String name;
    }

    4 测试类:

    package com.demo.solr;
    
    import com.demo.entity.Book;
    import org.apache.solr.client.solrj.SolrClient;
    import org.apache.solr.client.solrj.SolrServerException;
    import org.apache.solr.common.SolrInputDocument;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.io.IOException;
    
    @SpringBootTest(classes = {SolrApplication.class})
    @RunWith(SpringRunner.class)
    class SolrApplicationTests {
    
        @Autowired
        SolrClient solrClient;
    
    
        @Test
        public void add() throws IOException, SolrServerException {
    
            for (int i = 1; i < 51; i++) {
                //  solrClient.deleteById(i+"");
                SolrInputDocument document = new SolrInputDocument();
                Book book = new Book();
                book.setId(i);
                book.setContent("孙尚香削弱,马超削弱,新出英雄,地图调整" + i);
                book.setName("孙尚香削弱,马超削弱,新出英雄,地图调整" + i);
                book.setTitle("王者荣耀18赛季-" + i);
                document.setField("id", book.getId());
                document.setField("title_ik", book.getTitle());
                document.setField("content_ik", book.getContent());
                document.setField("name", book.getName());
                solrClient.add(document);
            }
            solrClient.commit();
    
    
        }
    
    }

    5  页面检测:

    增加删除修改都差不多,增加和修改可以通过add(SolrInputDocument)和addBean,根据主键是否存在来判断是新增还是修改,删除可以通过主键或者条件进行删除。增删改之后一定要记得commit!

    6:高亮查询,分页,分组查询,这里不在做介绍,自行百度。下一篇将介绍对pdf,doc等文件的索引以及查询。

  • 相关阅读:
    jvm系列(八):jvm知识点总览-高级Java工程师面试必备
    jvm系列(七):jvm调优-工具篇
    JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
    Java ClassLoader详解
    语言堆栈入门——堆和栈的区别
    kubernetes基本了解
    软编码和硬编码的理解
    前台页面传日期类型后台接收问题
    mybatis-plus简单了解
    二叉树基础知识
  • 原文地址:https://www.cnblogs.com/woshuaile/p/12174939.html
Copyright © 2011-2022 走看看