我与solr(四)--solrJ
SolrJ索引库:
solr提供的一个客户端操作框架,在文件/solr6.2/dist下面可以找到该jar包solrj.jar以及相关jar包,可以使用maven添加。
java使用solrJ如下:
@Service
public class IntelligenceWordSolrDAOImpl implements IntelligenceWordSolrDAO { private static final String URL = Config.getString("config.solr.url.mycore"); /**
* 获取solrService对象
*
* @return
*/
private SolrClient getSolrService() { String urlString = "http://192.168.1.12:8080/solr/mycore";
SolrClient solr = new HttpSolrClient.Builder(urlString).build(); return solr;
} /**
* 在搜索器引擎中创建索引
*
* @param intelligenceList
*/
public void add(List<Intelligence> intelligenceList) throws Exception { SolrClient solr = getSolrService(); List<SolrInputDocument> SolrInputDocumentList = Lists.newArrayList();
intelligenceList.forEach(intelligence -> SolrInputDocumentList.add(initProperty(intelligence))); solr.add(SolrInputDocumentList);
solr.commit();
} /**
* 查询数据
*
* @param param 匹配的参数集合
* @return 文档的数量
* @throws Exception
*/
public Long query(String[] param, Integer limit) throws Exception { Integer branchId = LoginContext.getBranchId();
SolrClient solr = getSolrService();
SolrQuery query = new SolrQuery(); StringBuffer buffer = new StringBuffer();
for (int i = 0; i < param.length; i++) {
if (i + 1 == param.length) {
buffer.append("\"" + param[i] + "\"");
} else {
buffer.append("\"" + param[i] + "\"" + " OR ");
}
} //根据时间限制设置选定条件
DateTime dateTime = new DateTime();
dateTime.minusDays(limit);
Date queryTime = dateTime.toDate(); String queryStr = "text:(" + buffer.toString() + ")";
query.add(queryStr); //时间限定
String limitStr = "collectTime:[" + queryTime + " TO *]";
String branchStr = "branchId:("+branchId+")";
query.add(limitStr);
query.add(branchStr); // String allQuery = queryStr+" AND "+limitStr+" AND "+branchStr; //query.setQuery(allQuery); QueryResponse response = solr.query(query); //获取返回的数据
SolrDocumentList solrDocumentList = response.getResults();
return solrDocumentList.getNumFound();
} /**
* 初始化
*
* @param param
* @return
*/
public SolrInputDocument initProperty(Intelligence param) { Assert.notNull(param, "param not be null");
SolrInputDocument document = new SolrInputDocument();
document.addField("id", param.getIntelligenceId());
document.addField("intelligenceId", param.getIntelligenceId());
document.addField("title", param.getTitle());
document.addField("content", param.getContent());
document.addField("collectTime", param.getCollectTime().getTime());
document.addField("branchId", param.getBranchId()); return document;
} }
我与solr(四)--solrJ的更多相关文章
- Solr系列四:Solr(solrj 、索引API 、 结构化数据导入)
一.SolrJ介绍 1. SolrJ是什么? Solr提供的用于JAVA应用中访问solr服务API的客户端jar.在我们的应用中引入solrj: <dependency> <gro ...
- org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Internal Server Error 错误
Solr报错: { "responseHeader": { "status": 500, "QTime": 11 }, "erro ...
- Solr 14 - SolrJ操作SolrCloud集群 (Solr的Java API)
目录 1 pom.xml文件的配置 2 SolrJ操作SolrCloud 1 pom.xml文件的配置 项目的pom.xml依赖信息请参照: Solr 09 - SolrJ操作Solr单机服务 (So ...
- solr(四) : springboot 整合 solr
前言: solr服务器搭起来, 数据导入之后, 就该应用到项目中去了. 那在项目中, 该怎么整合和应用solr呢? 接下来, 就来整合和应用solr 一. 整合 1. 引入jar包 <prope ...
- Solr(四)Solr实现简单的类似百度搜索高亮功能-1.配置Ik分词器
配置Ik分词器 一 效果图 二 实现此功能需要添加分词器,在这里使用比较主流的IK分词器. 1 没有配置IK分词器,用solr自带的text分词它会把一句话分成单个的字. 2 配置IK分词器,的话它会 ...
- Solr 09 - SolrJ操作Solr单机服务 (Solr的Java API)
目录 1 SolrJ是什么 2 SolrJ对索引的CRUD操作 2.1 创建Maven工程(打包方式选择为jar) 2.2 配置pom.xml文件, 加入SolrJ的依赖 2.3 添加和修改索引 2. ...
- Java操作Solr之SolrJ
添加SolrJ的jar包 solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, <depende ...
- solr学习篇(四) java使用solr简单查询(初识solrj)
使用java实现solr查询 目录:1:导入jar包 2:核心类介绍 3:代码实现 4:注意事项 一 导入jar包 solrj可以使Java应用程序很方便的访问与操作solr. solrj有几个核心类 ...
- Solr JAVA客户端SolrJ 4.9使用示例教程
http://my.oschina.net/cloudcoder/blog/305024 简介 SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.So ...
随机推荐
- hg常用命令
关于hg命令选项 如果你是在windows系统下,使用的是图像界面,你很可能不常用它.但是一旦你了解这些命令之后,会觉得很方便.hg有很多命令,这些命令都有一定的选项,在开始的时候,只知道用它,有时候 ...
- 防御病毒邮件得看U-Mail邮件网关
其实在邮件通讯中,那些病毒.垃圾邮件.钓鱼软件也相当危险,在海量邮件中,你没法确定什么时间.哪一封会发起进攻,攻击的目标都有谁?但是一旦得逞,造成的损失又特别大. 最近美国同行又发现了一个新骗局:美国 ...
- ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现
本文首先从整体上介绍ROC曲线.AUC.Precision.Recall以及F-measure,然后介绍上述这些评价指标的有趣特性,最后给出ROC曲线的一个Python实现示例. 一.ROC曲线.AU ...
- apache目录浏览
DocumentRoot "/Library/WebServer/Documents" <Directory "/Library/WebServer/Documen ...
- [MEMO]: 机器学习教父级别的任务Jordan推荐的书籍
- C语言获取时间
转载:http://www.cnblogs.com/fzhe/archive/2012/11/06/2757858.html C语言获取系统时间的几种方式 C语言中如何获取时间?精度如何? 1 使 ...
- 图片缩放应用(nearest / bilinear / three-order interpolate)
typedef xPixel PIXELCOLORRGB; double Sinxx(double value){ if (value < 0) value = -value; if (valu ...
- java web(spring mvc) 获取请求host 和 如何获取静态页的相对路径
1.获取请求host StringBuffer url = request.getRequestURL(); String tempContextUrl = url.delete(url.length ...
- Spring SpringMVC和Mybatis整合
1.引入所要的jar包 2.创建Mybatis的sqlMapConfig.xml配置文件,该文件中可以配置mybaits的相关参数,数据源不在这里配置. <?xml version=" ...
- command line
command line terminal vim 编辑工具 vim 编辑命令 j 光标上移 k 光标下移 l 光标左移 h 光标右移 x / dd 删除一行 v 多行模式 :w 保存 :q 不保存退 ...