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的更多相关文章

  1. Solr系列四:Solr(solrj 、索引API 、 结构化数据导入)

    一.SolrJ介绍 1. SolrJ是什么? Solr提供的用于JAVA应用中访问solr服务API的客户端jar.在我们的应用中引入solrj: <dependency> <gro ...

  2. org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Internal Server Error 错误

    Solr报错: { "responseHeader": { "status": 500, "QTime": 11 }, "erro ...

  3. Solr 14 - SolrJ操作SolrCloud集群 (Solr的Java API)

    目录 1 pom.xml文件的配置 2 SolrJ操作SolrCloud 1 pom.xml文件的配置 项目的pom.xml依赖信息请参照: Solr 09 - SolrJ操作Solr单机服务 (So ...

  4. solr(四) : springboot 整合 solr

    前言: solr服务器搭起来, 数据导入之后, 就该应用到项目中去了. 那在项目中, 该怎么整合和应用solr呢? 接下来, 就来整合和应用solr 一. 整合 1. 引入jar包 <prope ...

  5. Solr(四)Solr实现简单的类似百度搜索高亮功能-1.配置Ik分词器

    配置Ik分词器 一 效果图 二 实现此功能需要添加分词器,在这里使用比较主流的IK分词器. 1 没有配置IK分词器,用solr自带的text分词它会把一句话分成单个的字. 2 配置IK分词器,的话它会 ...

  6. Solr 09 - SolrJ操作Solr单机服务 (Solr的Java API)

    目录 1 SolrJ是什么 2 SolrJ对索引的CRUD操作 2.1 创建Maven工程(打包方式选择为jar) 2.2 配置pom.xml文件, 加入SolrJ的依赖 2.3 添加和修改索引 2. ...

  7. Java操作Solr之SolrJ

    添加SolrJ的jar包 solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, <depende ...

  8. solr学习篇(四) java使用solr简单查询(初识solrj)

    使用java实现solr查询 目录:1:导入jar包 2:核心类介绍 3:代码实现 4:注意事项 一 导入jar包 solrj可以使Java应用程序很方便的访问与操作solr. solrj有几个核心类 ...

  9. Solr JAVA客户端SolrJ 4.9使用示例教程

    http://my.oschina.net/cloudcoder/blog/305024 简介 SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.So ...

随机推荐

  1. 写了好多次SSH现在对于框架还是有一定的基础了,但是对于框架下我们该如何进行操作呢???

    首先,对于一个老手来说,我们最快捷的就是ctrl+c和ctrl+v,但是我们自己应该复制哪一些代码呢? 1.在我们导完包之后,我们需要写的就是web.xml,在其中,我们要有过滤器及映射和监听器. w ...

  2. linux下redis的安装与部署及基础命令

    <1>下载安装文件:redis-3.2.5.tar.gz 放在opt目录下 <2> tar -zxvf redis-3.2.5.tar.gz,备份redis.conf到自己的目 ...

  3. 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)

    一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...

  4. mongodb的linux环境搭建

    一.启动 [mongodb@node1 ~]$ mongod -f /data/config/shard1.confmongod: /usr/lib64/libcrypto.so.10: no ver ...

  5. EditTextPreference点击后输入框显示隐藏内容,类似密码输入(转)

    http://bbs.anzhuo.cn/thread-928131-1-1.html EditTextPreference点击后输入框显示隐藏内容,类似密码输入... [复制链接]     aski ...

  6. DataGridView控件内建立日期选择编辑列

    两个文件: CalendarColumn 类: public class CalendarColumn : DataGridViewColumn { public CalendarColumn() : ...

  7. PagedDataSource、Repeater以及AspNetPager在ASP.NET上分页。

    一.前台使用服务器标签 1.1使用Repeater控件 <asp:Repeater ID="Repeater1" runat="server"> & ...

  8. (转载)自动化基础普及之selenium是啥?

    转载:http://www.cnblogs.com/fnng/p/3980093.html Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻 ...

  9. 一份不错的vue.js基础笔记!!!!

    第一章 Vue.js是什么? Vue(法语)同view(英语) Vue.js是一套构建用户界面(view)的MVVM框架.Vue.js的核心库只关注视图层,并且非常容易学习,非常容易与其他库或已有的项 ...

  10. clob型不能用 distinct,以及转换clob类型方法

    举例clob型不能用 distinct public List<WorkingPaper> findAssignedWorkPapers(String projectId, String ...