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等文件的索引以及查询。

猜你喜欢

转载自www.cnblogs.com/woshuaile/p/12174939.html