博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我与solr(四)--solrJ
阅读量:5226 次
发布时间:2019-06-14

本文共 2976 字,大约阅读时间需要 9 分钟。

SolrJ索引库:

solr提供的一个客户端操作框架,在文件/solr6.2/dist下面可以找到该jar包solrj.jar以及相关jar包,可以使用maven添加。

 

java使用solrJ如下:

@Servicepublic 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
intelligenceList) throws Exception { SolrClient solr = getSolrService(); List
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; }}

 

转载于:https://www.cnblogs.com/DASOU/p/5904572.html

你可能感兴趣的文章
【译】在Asp.Net中操作PDF - iTextSharp - 使用字体
查看>>
.net 文本框只允许输入XX,(正则表达式)
查看>>
Python 第四十五章 MySQL 内容回顾
查看>>
实验2-2
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
不错的MVC文章
查看>>
IOS Google语音识别更新啦!!!
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
BootScrap
查看>>
路冉的JavaScript学习笔记-2015年1月23日
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
Swift - UIView的常用属性和常用方法总结
查看>>
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>