首先solr下载可从官网进行下载, 不过官网下载有点慢
- http://www.apache.org/dyn/closer.lua/lucene/solr/8.0.0
启动以及关闭操作指令
启动命令:solr start
关闭命令:solr stop -all
重启solr :solr restart –p p_num
//windiws
solr.cmd start
启动完成进入页面
http://localhost:8983/solr
然后进行核心创建
1.在文件夹目录下创建E:\javaDevelop\solr-8.9.0\server\solr\d_new_core
2.将E:\javaDevelop\solr-8.9.0\server\solr\configsets\sample_techproducts_configs目录下的conf文件夹整个复制到上面的目录下
3.进入页面进行创建
进行创建springboot项目添加依赖,别管我的版本号 ,随意加的, 之前看别人的博客的话没有版本号 ,就自己加了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-solr</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
-
然后直接创建对象
package com.ite.demo.dao; import org.apache.solr.client.solrj.beans.Field; import org.springframework.data.annotation.Id; import org.springframework.data.solr.core.mapping.SolrDocument; @SolrDocument(solrCoreName = "d_new_core") public class Book { @Id @Field private String id; @Field private String description; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
-
修改配置文件
spring: data: solr: host: http://localhost:8983/solr/d_new_core
-
直接进行单元测试增删改查
package com.ite.demo; import com.ite.demo.dao.Book; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputDocument; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.io.IOException; import java.util.ArrayList; import java.util.List; @SpringBootTest class DemoSolrApplicationTests { @Autowired SolrClient solrClient; @Test public void add() { try { for (int n = 2 ; n < 100 ;n ++){ SolrInputDocument document = new SolrInputDocument(); document.setField("id", String.valueOf(n)); document.setField("description","炊事班的故事" + String.valueOf(n)); solrClient.add(document); } solrClient.commit(); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Test public void delete(){ try { solrClient.deleteByQuery("id:1"); solrClient.commit(); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Test public void update(){ try { Book book = new Book(); book.setId("1"); book.setDescription("炊事班的故事2"); solrClient.addBean(book); solrClient.commit(); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Test public void queryAll() { List<Book> bookList = new ArrayList<Book>(); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); solrQuery.setStart(0); solrQuery.setRows(20); try { QueryResponse queryResponse = solrClient.query(solrQuery); if (queryResponse != null) { bookList = queryResponse.getBeans(Book.class); System.out.println("bookList:" + bookList.size()); } } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
记录一次简单的代码操作solr, 后续还尝试了分词器 ,这里贴两位作者的文档笔记,看完大部分功能都涉及到了 ,后续再慢慢补充吧
- http://www.3qphp.com/java/framework/3360.html
- https://www.cnblogs.com/wjs2019/p/14048033.html
- https://blog.csdn.net/u012060033/article/details/124795404#124_solr_50
-