Java调用solrj5.5.3接口,查询数据

前期准备

搭建solr服务

参考上一篇,搭建solr搜索服务。

添加依赖

maven工程的话,添加如下依赖,

<!-- https://mvnrepository.com/artifact/org.apache.solr/solr-solrj -->
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>5.5.3</version>
</dependency>

也可以自己导入jar包

在solr安装目录下,找到solr-5.5.3\dist\solrj-lib路径,添加里面所有的jar包到自己的工程,别忘了在外面的文件夹还有个solr-solrj-5.5.3.jar包,一起拷贝。

编写调用代码

这里简单给个示例(包含分页),Spring mvc工程的:

    @ResponseBody
    @RequestMapping(value = "/searchByKeyWord", method =
    { RequestMethod.POST, RequestMethod.GET }, produces = "application/json; charset=utf-8")
    public String search(HttpServletRequest request, HttpServletResponse response, String keyWord,
        int pageSize, int pageOffset)
    {
        try
        {
            String urlString = ConfigUtil.getValueByKey("solrServiceUrl");
            SolrClient solr = new HttpSolrClient(urlString);

            SolrQuery query = new SolrQuery();
            query.set("q", URLDecoder.decode(keyWord, "UTF-8"));
            query.set("start", String.valueOf(pageOffset * pageSize));
            query.set("rows", String.valueOf(pageSize));

            QueryResponse queryResponse = solr.query(query);

            // SolrDocumentList list = queryResponse.getResults();

            Map<String, Object> result = new HashMap<String, Object>();
            List<OCSearchObject> rstList = queryResponse.getBeans(OCSearchObject.class);
            result.put("success", true);
            result.put("key", URLDecoder.decode(keyWord, "UTF-8"));
            result.put("list", rstList);
            result.put("totalCount", queryResponse.getResults().getNumFound());
            solr.close();

            return json(result);
        }
        catch (Exception e)
        {
            LOGGER.error(e.toString(), e);
            return jsonpFalse(request, response, "code_error");
        }
    }

以下是OCSearchObject类,注意要与data-config.xml配置的字段对应起来,还有就是不要忘了在字段前面加上@Field注解(org.apache.solr.client.solrj.beans.Field)。

public class OCSearchObject
{
    private Long id;
    private String name;
    private String fullText;
    private String type;
    /**
     * @return the id
     */
    public Long getId()
    {
        return id;
    }
    /**
     * @param id the id to set
     */
    @Field("id")
    public void setId(Long id)
    {
        this.id = id;
    }
    /**
     * @return the name
     */
    public String getName()
    {
        return name;
    }
    /**
     * @param name the name to set
     */
    @Field("name")
    public void setName(String name)
    {
        this.name = name;
    }
    /**
     * @return the fullText
     */
    public String getFullText()
    {
        return fullText;
    }
    /**
     * @param fullText the fullText to set
     */
    @Field("fullText")
    public void setFullText(String fullText)
    {
        this.fullText = fullText;
    }
    /**
     * @return the type
     */
    public String getType()
    {
        return type;
    }
    /**
     * @param type the type to set
     */
    @Field("type")
    public void setType(String type)
    {
        this.type = type;
    }
}

前端示例

其它的根据业务需求具体扩展吧,在前端可以对查询到的数据进行一些自定义展示(关键字标红高亮,每条记录分类,点击跳转到记录详情页面)。

时间: 2024-10-18 03:05:32

Java调用solrj5.5.3接口,查询数据的相关文章

JAVA调用聚合天气api接口示例

查询天气预报在APP中常用的一个常用功能,聚合数据免费天气api接口可以根据根据城市名/id查询天气.根据IP查询天气.据GPS坐标查询天气.查询城市天气三小时预报,并且支持全国不同城市天气预报查询. 代码描述:基于JAVA的免费天气api接口调用示例,根据文档中注明的需求参数,调用接口返回数据. 关联数据:免费天气api 接口地址:https://www.juhe.cn/docs/api/id/39 step1:选择本文所示例的接口"免费天气api" url:https://www.

java调用微信公众平台接口

微信公众平台 这两天在网上看了其他的方法,也调试了一些,然后自己整理了一下,方便自己学习,也方便大家使用. 调用接口 1.java调用上传图片接口 public final static String IMAGE = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN"; public static String uploadimg(MultipartFile file ) { Clo

java调用.net的webservice接口

要调用webservice,首先得有接口,用已经写好的接口地址在myEclipse的目标project中,右键->new web service client-> 选择JAX-WS方式,点击“next”,看到以下界面:输入webservice接口地址,然后选择你要生成客户端的package包,不选择默认是项目的default包. 点击“next”,进入验证环节,再次点击“next”,进入以下界面:如果在新建项目时new的是web service project,这两项不需要勾选,否则要勾选上.

java实现连接mysql数据库单元测试查询数据项目分享

1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test;具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc) 具体的建立数据库操作详见下图: 3.编写包中的各种类代码,具体参考代码如下: UserInfo.java /** * FileName: UserInfo.java

java调用windows的wmi获取设备性能数据

java调用windows的wmi获取监控数据(100%纯java调用windows的wmi获取监控数据) 转:http://my.oschina.net/noahxiao/blog/73163 纯java主要体现在可以跨平台调用com.所用的是j-Interop,它是100%纯java实现的com的调用 1.环境准备 a.windows要开启Remote Registry与Windows Management Instrumentation服务 b.修改安全策略 我系统是英文的,如果是中文系统

Java 调用 php接口(Ajax)(二)

由于项目里面需要用到Java调用PHP的充值接口,所以学习了一下,以下这个Demo是个小小的例子,写下来做个笔记> jsp页面: <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=GBK"%> <% String path = request.getCont

java调用scala 查询hbase数据

问题:将scala打成jar包,提供给java调用,但是java一直提示找不到类 实现功能:利用spark查询hbase数据,然后提供给外部接口调用 我的方式:spark查询Hbase用scala实现(已经完成),将scala打成jar 包提供给java调用一直提示找不到scala 中的主类

java 后台框架 支持APP接口调用 APP后台 手机后台框架java springmvc myb

A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro  Shiro 是一个用 Java 语言实

Java调用WebService 接口 实例

这里给大家介绍一下,Java调用webservice的一个实例的过程. 本项目不能运行,因为接口地址不可用. 这里只是给大家介绍一个过程,同时留作自己的笔记.如果要学习,可以参照别人的实例.比较好. ①选择项目根目录的src ,右键,new --> webservice client 然后输入地址: http://172.18.100.52:456/hello?wsdl 必须要加wsdl结尾,这样才是一个webservice的接口. finlish.这时候刷新项目.可以看到项目下/src/com