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