java操作solr实现查询功能的实例
作者:菩提树下一参悟 发布时间:2023-08-04 10:41:34
标签:java,操作,solr,查询
一、封装的查询方法
/**
* solr查询方法
* @param client solr客户端
* @param query solr查询对象
* @return list集合
* @throws SolrServerException
* @throws IOException
*/
public static List<Map<String, Object>> getSolrQuery(HttpSolrClient client, SolrQuery query) throws SolrServerException, IOException{
List<Map<String, Object>> list = null;
//执行查询并返回结果
QueryResponse resp = client.query(query);
SolrDocumentList results = resp.getResults();
//获取查询到的数据总量
long numFound = results.getNumFound();
//判断总量是否大于0,
if(numFound <= 0) {
//如果小于0,表示未查询到任何数据,返回null
return null;
}else {
//如果大于0,表示有数据
//创建list存储每条数据
list = new ArrayList<>();
//遍历结果集
for (SolrDocument doc : results) {
//得到每条数据的map集合
Map<String, Object> map = doc.getFieldValueMap();
//添加到list
list.add(map);
}
//返回list集合
return list;
}
}
二、主函数
public static void main(String[] args) throws SolrServerException, IOException {
//创建solr客户端连接
HttpSolrClient hsc = new HttpSolrClient.Builder(SOLR_URL).build();
//创建查询对象
SolrQuery query = new SolrQuery();
//设置查询全部数据的条件
//query.setQuery("*:*");
query.setQuery("id:1");
List<Map<String, Object>> list = getSolrQuery(hsc, query);
if(list == null) {
System.out.println("未查询到任何结果");
return;
}
for (Map<String, Object> map : list) {
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()) {
String key = it.next();
Object value = map.get(key);
System.out.println(key+"----"+value);
}
System.out.println("=======================================");
}
三、solr_url
//注这是一个人正确的url地址
如果url后边不加表会报如下错误:
来源:http://www.cnblogs.com/li-zx/archive/2017/11/16/7845904.html


猜你喜欢
- 一.代码实现1. “Activity_11\src\yan\activity_11\MainActivity.java”pack
- 1.泛型概念泛型就是将类型参数化所谓类型参数化就是将类型定义成参数的形式,然后在使用此类型的时候的时候再传入具体的类型到这我们可以看出来:泛
- 本文实例讲解了java遍历读取xml文件内容的详细代码,分享给大家供大家参考,具体内容如下package test;import java.
- 大家好,今天我们继续来学习Android 8.0系统的适配。之前我们已经讲到了,Android 8.0系统最主要需要进行适配的地方有两处:应
- 本文实例讲述了Android中TelephonyManager类的方法。分享给大家供大家参考。具体如下:TelephonyManager类主
- java在jdk1.5中引入了注解,spring框架也正好把java注解发挥得淋漓尽致。下面会讲解Spring中自定义注解的简单流程,其中会
- 一、使用SchedulingConfigurer实现多个定时任务示例参考lz此博文链接二、定时任务多机器部署解决方案方式一:拆分,单独拆分出
- 开篇我们还是和原来一样,讲一讲做爬虫的思路以及需要准备的知识吧,高手们请直接忽略。首先我们来缕一缕思绪,想想到底要做什么,列个简单的需求。需
- 一、Has方法与With方法如:A类必须包含B类一个不为null的实例,而B类可选择时候包含A类一个实例。A.HasRequired(a =
- 两种方法,第一种是静态开启方法把application 或者 activity的主题设置为Theme.Holo即可<?xml vers
- MybatisMyBatis ,是国内最火的持久层框架采用了ORM思想解决了实体类和数据库表映射的问题。对JDBC进行了封装,屏蔽了JDBC
- 1. 简介直到4g时代,流量依然是宝贵的东西。而移动网络传输中,最占流量的一种载体:图片,成为了我们移动开发者不得不关注的一个问题。我们关注
- IDEA安装阿里巴巴编码规范插件的两种方式:在线安装和离线安装。1.在线安装:打开file-settings-Plugins.如图:搜索到点
- idea这个工具真的很好 很强大。而且非常的好用。用过idea的人,估计都不想用eclipse了。idea这个工具虽然好用,但是对硬件还是有
- 一.起缘故事缘于一位朋友的一道题:朋友四人玩LOL游戏。第一局,分别选择位置:中单,上单,ADC,辅助;第二局新加入的伙伴要选上单,四人可选
- 本文实例讲述了C#实现为类和函数代码自动添加版权注释信息的方法,分享给大家供大家参考之用。具体方法如下:以web项目为例:一:给类加注释1.
- 前言上篇文章我们介绍了抽象化磁盘文件的 File 类型,它仅仅用于抽象化描述一个磁盘文件或目录,却不具备访问和修改一个文件内容的能力。Jav
- android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家。MainActivity.javapackage com.bb
- Java中的final关键字1、修饰类的成员变量 这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修
- 一、在学习枚举之前,首先来听听枚举的优点。1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。2、枚举使代码更易于维护,有助于确保