如果想要知道如何安装solr,集成IKAnalyzer中文分词器,批量导入数据库数据,java使用参照以下本博主博文:

安装solr

https://blog.csdn.net/u013294097/article/details/89735654

集成IKAnalyzer中文分词器

https://blog.csdn.net/u013294097/article/details/89735890

solr使用浏览器批量导入数据库中数据

https://blog.csdn.net/u013294097/article/details/89739768

solr在java中的案例

https://blog.csdn.net/u013294097/article/details/89739859

github代码:

https://github.com/mx342/luceneDemo

1.必要的pom,本文使用的是springboot做案例

包含核心包solrj,http链接的包等,springboot自带日志

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>4.10.3</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId><version>4.3.1</version></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.6</version><type>pom</type></dependency><dependency><groupId>org.codehaus.woodstox</groupId><artifactId>wstx-asl</artifactId><version>3.2.7</version></dependency><dependency><groupId>org.noggit</groupId><artifactId>noggit</artifactId><version>0.5</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.3</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

2.测试代码

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.util.List;
import java.util.Map;@RunWith(SpringRunner.class)
@SpringBootTest
public class SolrApplicationTests {@Value("${spring.data.solr.host}")private String solrHost = "";/*** 作者 ZYL* 功能描述 : 生成索引* 日期 2019/5/1 17:30* 参数* 返回值 void*/@Testpublic void testIndexCreate() throws Exception {//连接solr服务端SolrServer solrServer = new HttpSolrServer(solrHost);SolrInputDocument doc = new SolrInputDocument();//域要先定义后使用,必须要要注意要有id主键域//solr中没有专用的修改方法,会根据id进行查找,如果找到了,删除原来的,根据新的进行查找doc.addField("id","a001");doc.addField("product_name","台灯111");doc.addField("product_price","12.5");solrServer.add(doc);solrServer.commit();}/*** 作者 ZYL* 功能描述 : 删除操作* 日期 2019/5/1 17:44* 参数* 返回值 void*/@Testpublic void testIndexDel() throws Exception{SolrServer solrServer = new HttpSolrServer(solrHost);//根据主键id进行删除solrServer.deleteById("a001");
//        solrServer.deleteByQuery("*:*");solrServer.commit();}/*** 作者 ZYL* 功能描述 : 简单查询* 日期 2019/5/1 17:31* 参数 null* 返回值*/@Testpublic void tesIndexSearch1() throws Exception{SolrServer solrServer = new HttpSolrServer(solrHost);//创建solr的查询条件对象SolrQuery solrQuery = new SolrQuery();solrQuery.setQuery("product_name:台灯");//查询并获取查询响应对象QueryResponse queryResponse = solrServer.query(solrQuery);//从查询响应中获取查询结果集对象SolrDocumentList results = queryResponse.getResults();//遍历查询结果集//打印查询的一共的多少条System.err.println("总查询条数:" + results.getNumFound());for (SolrDocument doc : results) {System.err.println("==============" + doc.get("id"));System.err.println("==============" + doc.get("product_name"));System.err.println("==============" + doc.get("product_price"));System.err.println("---------------------------------------------------");}solrServer.commit();}/*** 作者 ZYL* 功能描述 : 复杂查询* 日期 2019/5/1 19:34* 参数* 返回值 void*/@Testpublic void tesIndexSearch2() throws Exception {SolrServer solrServer = new HttpSolrServer(solrHost);//创建solr的查询条件对象SolrQuery solrQuery = new SolrQuery();solrQuery.setQuery("台灯");//设置默认搜索与solrQuery.set("df","product_keywords");//设置过滤条件solrQuery.addFilterQuery("product_price:[1 TO 100]");//设置排序,降序solrQuery.setSort("product_price", SolrQuery.ORDER.desc);//设置分页solrQuery.setStart(0);//设置查询多少条solrQuery.setRows(10);//设置高亮hlsolrQuery.setHighlight(true);//设置高亮显示的域String highlightingField = "product_name";solrQuery.addHighlightField(highlightingField);//设置高亮前缀solrQuery.setHighlightSimplePre("<span style=\"color:red\" >");//设置高亮后缀solrQuery.setHighlightSimplePost("</span>");//=========================查询并获取查询响应对象=======================QueryResponse queryResponse = solrServer.query(solrQuery);//从查询响应中获取查询结果集对象SolrDocumentList results = queryResponse.getResults();//遍历查询结果集//打印查询的一共的多少条System.err.println("总查询条数:" + results.getNumFound());Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();for (SolrDocument doc : results) {System.err.println("==============" + doc.get("id"));Map<String, List<String>> highlightingById = highlighting.get(doc.get("id"));if(highlightingById.containsKey(highlightingField)){List<String> msgList = highlightingById.get(highlightingField);for (String s : msgList) {System.err.println("==============highlighting:" + s);}}System.err.println("==============" + doc.get("product_name"));System.err.println("==============" + doc.get("product_price"));System.err.println("---------------------------------------------------");}}
}

如果觉得本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行随意打赏。您的支持将鼓励我继续创作

在java中使用solrj对solr进行CRUD相关推荐

  1. java中使用pgsql的json类型CRUD

    java po类: private Object labReportBO; 数据库类型: lab_report_bo JSON; mapper.xml <resultMap id="B ...

  2. solr使用三(在实际业务中使用SolrJ)

    Solr官方提供了对于不同客户端的例子,详见SolrJ官方文档 一.引入pom文件 <dependency><groupId>org.apache.solr</group ...

  3. java全文搜索服务器 solr_Apache Solr采用Java开发、基于Lucene的全文搜索服务器

    http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Luc ...

  4. java创建的窗口无法关闭_在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java)...

    在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java) public class Screen extends Ca ...

  5. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  6. java中调用python

    在Java中调用Python </h1><div class="clear"></div><div class="postBod ...

  7. java中hashcode_浅谈Java中的Hash值

    1.Hash值有什么用? HashMap.HashTable.HashSet,所以涉及到使用Hash值进行优化存储的地方,都会用到HashCode.HashCode是Key,这种计算为提高计算的性能. ...

  8. JAVA中获取当前系统时间

    JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...

  9. Java中的对象和包

    什么是对象 对象就是实际生活中的事物,可以说一切事物都是对象. 对象的三个特点 1  对象的行为:这个对象能做什么, 例如包子是用来吃的 2  对象的状态:对象保持的一种状态,例如这个包子是热的还是凉 ...

最新文章

  1. 2022-2028年中国香薰行业市场研究及前瞻分析报告
  2. 一家AI创业公司的自救:深陷疫情重点打击行业,60天从烧钱到盈利
  3. python基础(十七)
  4. UA MATH563 概率论的数学基础 中心极限定理10 Borel-Cantelli引理
  5. 图像处理之opencv图像特效大全
  6. 【收藏】机器学习入门的常见问题集(文末送书)
  7. python 代码生成器 oc_iOS 移动端生成工具开发
  8. 剑指offer 二叉搜索树的后序遍历
  9. 查数估获近千万元融资 ,用科技为金融赋能
  10. stl中Priority Queues(优先队列)的基本用法
  11. 如何判断软件架构的好与坏
  12. linux 声明消息函数,linux消息队列函数--解析
  13. 简直不要太硬了!一文带你彻底理解文件系统 | 原力计划
  14. windows 2003常用命令(推荐)
  15. CRC全套~~~ 转载
  16. 漏洞扫描与云服务器的安全防护
  17. Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标...
  18. mac 修改hosts的2种方案
  19. 苹果手机屏幕尺寸大全
  20. python调用百度AI接口识别营业执照

热门文章

  1. java for 面试题_Java面试题整理
  2. 附录 D:保护 Active Directory 中的内置 Administrator 帐户的安全
  3. Linux单用户模式(修改密码、运行级别)方法详解
  4. 敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装
  5. Java基础学习总结(74)——Java常见笔试题及答案汇总
  6. js 点击闭包_【新年跳槽必备】2020最新(前端原生JS专题)面试题 速领!
  7. 使用cdn和npm引入的区别_中央空调和新风系统有什么区别?有必要一起装吗?
  8. webpack 合并压缩_webpack 打包压缩js和css的方法示例
  9. java 内部类序列化_Gson如何序列化内部类
  10. LOJ 6281 数列分块入门 5