springboot2.0+spring-data-solr 新增and查询简单例子

上篇文章介绍了centos7.5 安装solr的配置。今天介绍通过springboot2.0+spring-data-solr 完成一个Product对象的新增。也记录下这次过程。

1、进入阿里云centos系统,进入solr的bin目录,创建一个collection,命令行代码如下:

./solr create -c Product -force

由于我直接用root操作,所以后面加了-force ,强制执行

2、配置spring boot2.0 工程,pom文件导入依赖,如下截图:

springboot2.0+spring-data-solr 新增and查询简单例子

solr服务器我用的是最新的7.7.0

3、配置文档类

建立Productde 文档类,代码如下:

@SolrDocument(collection = "Product")
public class Product {
\t@Id
\t@Indexed(name = "id", type = "string")
\tprivate String id;
\t@Indexed(name = "name", type = "string")
\tprivate String name;
\tpublic String getId() {
\t\treturn id;
\t}
\tpublic void setId(String id) {
\t\tthis.id = id;
\t}
\tpublic String getName() {
\t\treturn name;
\t}
\tpublic void setName(String name) {
\t\tthis.name = name;
\t}
}

4、定义ProductRepository接口,此类我们暂时只继承Spring-data-solr提供的SolrCrudRepository,完成我们的新增和查询是没有问题的,

代码如下:

public interface ProductRepository extends SolrCrudRepository<product> {
public List<product> findByName(String name);
}
/<product>/<product>

5、进行solr 持久层的spring配置,代码如下:

@Configuration 

@EnableSolrRepositories(
basePackages = "xin.clips")
@ComponentScan
public class SolrConfig {
@Value("${solr.host}") String solrURL;
@Bean
public SolrClient solrClient() {
return new HttpSolrClient.Builder(solrURL).build();
}
@Bean
public SolrTemplate solrTemplate(SolrClient client) throws Exception {
return new SolrTemplate(client);
}
}

备注:Value solr.host 配置在application.properties中,配置格式如:solr.host=http://xxx.xx.x.x:8983/solr/

6、写我们的controller类,模拟新增和查询,代码如下:

/**
* @author www.clips.xin
* @description Product solr controller 示例
*/
@RestController
@RequestMapping("/api/product")
public class ProductController {
@Autowired
\tprivate ProductRepository productRepository;
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save() {
Product p = new Product();
p.setId("3");
p.setName("头孢拉定胶囊");
productRepository.save(p);
System.out.println("插入成功!");
return null;
}
@RequestMapping(value = "/get", method = RequestMethod.POST)
public String get() {
List<product> list= productRepository.findByName("头孢拉定胶囊");
Product p = list.get(0);
return "id"+p.getId()+",name:"+p.getName();
}
}

/<product>

7、启动程序,postman进行测试,截图如下:

springboot2.0+spring-data-solr 新增and查询简单例子

浏览器打开:http://x.x.x.x:8983/solr/#/Product/core-overview 可以查看server端信息。

代码地址:https://github.com/yuanzongyu/tutorials/tree/master/persistence-modules/spring-data-solr


分享到:


相關文章: