springMVC整合solr-----没有问题的

Solr(Lucene)+SpringMVC实现电商站内搜索功能 系统在自己一步一步部署下完成站内搜索,可以了解Solr集合SpringMvc的使用,对Solr安装使用可以提升许多,我还有一篇文展描述了步骤, 配置完好的solr(中文分析器)+我配置的SolrHome+mysql的数据库+javaweb程序 希望共同进步 立即下载

首先,在可以根据ip:端口能够进入solr服务器的基础上,solr所有配置都配好的基础上。。。。。。。。。。。。。。。

1、导包,在这里我用的是7.0.1的包,在晚上看到的都是四点几包,绕了很大一圈,很多方法都不一样了,只有一个包

<dependency>
  <groupId>org.apache.solr</groupId>
  <artifactId>solr-solrj</artifactId>
  <version>7.0.1</version>
</dependency>

2、配置一个spring-solr.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="httpSolrClient"
          class="org.apache.solr.client.solrj.impl.HttpSolrClient">
        <constructor-arg index="0" value="http://192.168.52.13:8983/solr/comInfo_core"/>
        <!-- 建立连接的最长时间 -->
        <!--<property name="connectionTimeout"
       value="${solr.connectionTimeout}"/>-->
        <property name="connectionTimeout" value="3000"/>
    </bean>

</beans>

3、在这里我是将solr交给spring管理的,只写了service层跟serviceImpl

@Service
public class SolrImpl implements IsolrService {
    @Autowired
    HttpSolrClient client;
    @Override
    public List<CommodityInfoDto> solr(String text) throws IOException, SolrServerException {

        SolrQuery query=new SolrQuery();

        String  queryText="infoName:"+text+"* or infoArtist:"+text+" or infoAddress:"+text+"*";
        query.set("q",queryText);
        //1、过滤器
        //query.set("fq","infoPrice:[1 TO 1000]");
        //2、排序
        //query.set("sort","infoPrice desc","id asc");
        //3、设置查询到的文档返回的域对象
        query.set("fi","id,infoName,infoArtist,infoAddress");

        //4、设置默认查询的域
        query.set("df","infoName","infoArtist","infoAddress");

        //5.分页
        query.set("start",0);
        query.set("rows",10);

        //6、高亮
        //设置高亮域(设置的域必须在查询条件中存在)
        query.addHighlightField("infoName");
        query.addHighlightField("infoArtist");
        query.addHighlightField("infoAddress");
        //前缀
        query.setHighlightSimplePre("<em style='color:red'>");//这里的话,如果用thymeleaf模板,css样式生效需要加th:utext...
        //后缀
        query.setHighlightSimplePost("</em>");

        QueryResponse response = client.query(query);
        //普通查询
        SolrDocumentList results = response.getResults();
        List<CommodityInfoDto> comList=new ArrayList<CommodityInfoDto>();
        //高亮查询
        NamedList<SimpleOrderedMap> namedList= (NamedList<SimpleOrderedMap>) response.getResponse().get("highlighting");
        //k是id,内部的map的key是域名,其value是高亮的值集合
        /*Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();*/
        System.out.println("匹配的结果总数是-------"+results.getNumFound());
            for(SolrDocument document:results){
                CommodityInfoDto comInfo=new CommodityInfoDto();
                Integer id=Integer.parseInt((String)document.get("id"));
                comInfo.setInfoId(id);;
                comInfo.setInfoName((String)document.get("infoName"));
                comInfo.setInfoImg((String)document.get("infoImg"));
                comInfo.setInfoArtist((String)document.get("infoArtist"));
                comInfo.setInfoTime((String)document.get("infoTime"));
                comInfo.setInfoAddress((String)document.get("infoAddress"));
                comInfo.setInfoPrice((String)document.get("infoPrice"));
                comInfo.setInfoTicket((String)document.get("infoTicket"));
                for(int i=0;i<namedList.size();i++){
                    String nameId = namedList.getName(i);
                    if(id.toString().equals(nameId)){
                        SimpleOrderedMap map=namedList.getVal(i);//获取某个商品的高亮
                        //这里是需要加判断的,不然会有空值加进去
                        ArrayList infoName = (ArrayList) map.get("infoName");
                        if(infoName!=null&& infoName.size()>0){
                            String highInfoName=(String)infoName.get(0);
                            comInfo.setInfoName(highInfoName);
                        }

                   
                        ArrayList infoArtist = (ArrayList) map.get("infoArtist");
                        if(infoArtist!=null&& infoArtist.size()>0){
                            String highinfoArtist=(String)infoArtist.get(0);
                            comInfo.setInfoArtist(highinfoArtist);
                        }


                        ArrayList infoAddress = (ArrayList) map.get("infoAddress");
                        if(infoAddress!=null&& infoAddress.size()>0){
                            String highinfoAddress=(String)infoAddress.get(0);
                            comInfo.setInfoArtist(highinfoAddress);
                        }
                    }
                }
                comList.add(comInfo);
        }
        return comList;
    }
}

4、我这里是通过用户输入一个字符,里面内容包括商品名字+商品艺人姓名+商品地址,联合查询,查询出来的对象也不会是重复的数据

    //查询商品
    @Test
    public void test11(){
        try {
            List<CommodityInfoDto> list = solr.solr("演唱");
            for(CommodityInfoDto com:list){
                System.out.println("-------------->"+com);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (SolrServerException e) {
            e.printStackTrace();
        }
    }
}

5、结果看看

 

 

 

solr-5.5.4与spring 集成项目示例2 solr-5.5.4与spring集成,增加了账号密码身份验证,增加了zk中文分词,增加了增量导入,mysql数据同步,增加了git链接地址 立即下载

相关推荐

solr配置和solrj使用(demo)

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http G Solret操作提出查找请求,并得到XML格式的返回结果。 Solrj 是访问 Solr 的 Java 客户端,它提供添加、更新和查询Solr 索引的接口。http://wiki.chenlb.com/solr/doku.php?id=solrj

springMVC中solr的简单实现步骤

1.在虚拟机里安装solr,可以通过官网下载solr的linux的安装包解压之后,添加/etc/sysconfig/iptables中的端口号8983(solr默认) 2.Solr的安装:     第一步:解压压缩文件:    [root@localhost Desktop]# tar -zvxf solr-7.3.1.tgz  -C /opt/     第二步:启动solr     [root@...

qq_41950069的博客 1501

无法找到来自源 nvlddmkm 的事件 ID 14 的描述

具体错误是: 无法找到来自源 nvlddmkm 的事件 ID 14 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。 出现这样错误的原因有很多了,有可能是硬件有可能是软件。由于我是刚配置的电脑,起初非常怀疑是自己组装的问题,折腾了好久,心态爆炸!!!先说我报这样错误的情况,以及解决办法,供后面人参考。 ...

SeventhBlue 6万+

solr整合springmvc开发(一)

开发前提:将数据库导入索引库 1.自定义一个索引库 2.配置IKAnalyzer中文分析器    a.把IKAnalyzer2012FF_u1.jar添加到solr/WEB-INF/lib目录下    b.复制IKAnalyzer的配置文件和自定义词典和停用词词典到solr的solr/WEB-INF/classes目录下。复制IK分词器配置文件、自定义词典、停用词词典(词典需要自己配置)

coffeno1的博客 5185

CARLA 0.9.15从零开始:环境搭建与基础场景实战指南

本文是CARLA 0.9.15从零开始的完整环境搭建与基础运行教程。详细介绍了在Linux系统下配置Python环境、下载安装CARLA核心软件包、启动服务器以及运行第一个基础场景的步骤。重点演示了如何通过Python客户端脚本生成随机车流,并手动控制EGO车辆在仿真城市中行驶,为自动驾驶算法开发构建了坚实的仿真测试基础。

weixin_29053383的博客 779

unity中简单全景搭建

全景场景能够直观的展现一部分区域的全貌,在全景场景中我们能360°观看周围的景象,仿佛自身就在这个场景中,在场景的外部,我们能发现场景就是一个密封的球体,我们是处在球体的内部观察周围,在球内部观察四周看到的都是球的内表面,所以我们看到的全景其实就是贴在密封球体内的一张全景图片。接下来要介绍的就是如何在unity中用一个球体来搭建全景场景。

qq_31791999的博客 3637

springmvc solr mysql_Solr集群安装及实战

一 Solr集群(SolrCloud)1 什么是SolrCloudSolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布 式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用 SolrCloud 的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud 来满足这些 需求。SolrCloud 是基于 Solr 和 ...

weixin_42691388的博客 251

MMSegmentation 安装教程,避免mmcv不合适版本,及相关问题解决

都行,不做要求。

qq_43683133的博客 1220

Solr教学视频从入门到精通视频课程

本课程适合有Lucene基础的同学学习1、Solr 是Apache下一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器2、Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 3、Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况

Quartus Prime 软件 USB-blaster 驱动安装失败【已解决】

一、安装步骤 1、将FPGA 开发板插入电脑时,未安装驱动的电脑会提示安装usb-Blaster驱动。Windows搜索框打开设备管理器,在“其他设备”下会发现黄色感叹号的“USB-Blaster”的设备驱动。 2、Quartus系列软件的安装目录下自带USB-blaster的驱动程序,右键更新驱动,选择驱动目录:(D:\intelFPGA\18.1\quartus\drivers\usb-blaster,文件位置和版本请按照自己安装的路径选择),点击Next开始安装。 3、安装成功,重启电脑即可使

adolphwang_909086的博客 6万+

DOORS需求管理实战:从汽车设计案例看模块化需求拆分技巧

本文通过一个汽车设计实战案例,深入解析了如何利用DOORS进行模块化需求拆分与管理。从捕获原始用户需求到精炼为可追踪的系统需求,再到按子系统(如自动驾驶)进行模块化拆分,文章详细展示了构建需求骨架、建立可追溯性以及实施变更控制的完整流程,帮助团队在复杂系统工程中实现从混沌到秩序的高效协同。

ww90123的博客 244

Solr构建分布式搜索+面试题讲解

本课程共分26节,内容包括solr概述,文档的导入删除和修改,修改大启动时间和默认时区,主要配置文件详解,solrcore详解与使用,mysql数据导入索引库,定时任务,中文分词,solrcloud创建和使用,路由规则,负载均衡,leader选举与容错,solrj操作solr,自动提交与软提交,函数简介,开启身份验证,springmvc集成等。

OMNET++ INET框架学习教程(一)

在自组网学习的道路上摸石头过河,帮你快速入门OIMNET++平台下的INET框架。

NLDwangzhe的博客 6565

solr8整合Spring,Springmvc案例

接下来就是solr8整合Spring和Springmvc案例了 项目框架图 1.导包 springmvc的相关jar包 solrJ相关的jar包 server\lib\ext下的jar包 2.书写配置文件,需要有web.xml和springmvc.xml web.xml如下: <?xml version="1.0" encoding="UTF-8"?> <we...

only1475813080的博客 845

【华为OD技术面试手撕真题】25、验证IP地址 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

验证IP地址 华为od机试真题,华为OD技术二面,华为od机考,华为od手撕真题,华为od技术二面,华为od机试,华为OD机试的高频手撕代码题,华为od八股文

KJ.JK 4043

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

solr整合springmvc开发(二)

博客的内容我希望对读者有用,如果哪些知识点不清楚,我们可以交流,共同学习。。。。 前提工作准备完毕,着手开发网站了。首先把环境搭建好,导入solr相关jar包和springmvc的jar包。 我今天讲的是一个网站商品显示功能,通过查询商品名称,价格区间,商品分类来显示。 springmvc.xml配置如下:                               

coffeno1的博客 7381

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

solr与ssm整合

solr的对象都是⼀个⽂档对象,所以要把对象 dao 转换为⽂档给 solr 在 schema.xml 中,设置业务系统Field,其中 field 标签中的 name 和 数据库⾥要搜索的字段⼀ 致。 <field name="item_title" type="text_ik" indexed="true" stored="true"/> <field name="ite...

weixin_46009736的博客 364

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Springboot整合solr,Shiro,Activity全家桶(一)

最近项目开发中发现,利用注解的方式替代原有的xml配置文件搭建SpringMVC,较流程和步骤来说,着实方便许多,整理笔记如下: 目录 一,整合solr 二,整合Activity 一,整合solr 1,在IDEAL中创建一个名为personal-system的项目,依赖文件: <?xml version="1.0" encoding="UTF-8"?> <proje...

weixin_41326106的博客 1454

solr8.0 springboot整合solr(四)

solr8.0 springboot整合solr(四) 引言:   solr搭建起后,就该应用到java后台开发里了,接下来就用springboot整合应用solr 一:引入jar包    <!--solr--> <dependency> <groupId>org.springframework.data...

Jarbein的博客(Java军师公众号) 1510

Solr案例

Solr案例 1. 综合案例 1.1. 需求 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字、分类、价格搜索商品信息,也可以根据价格进行排序,并且实现分页功能。 界面如下: 架构分为: (1)、solr服务器。(已经做完,同入门示例) (2)、自己开发的应用(重点) (3)、数据库mysql 自己开发...

weixin_30325071的博客 187

Solr综合案例深入练习

1.综合案例 1.1.需求 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字、分类、价格搜索商品信息,也可以根据价格进行排序,并且实现分页功能。 界面如下: 1.2.分析 开发人员需要的文档:静态页面(根据UI设计由美工给出)、数据库设计、原型设计 1.2.1.UI分析 1.2.2.架构分析 架构分为: (1)、solr服...

weixin_30641465的博客 174

springmvc + solr的增删改查实例

1、solr的配置文件(solr.properties)solr.Url=http://localhost:8080/solr/student (student是实例core) solr.maxRetries=1 solr.connectionTimeout=5002、引入solr的配置文件,并配置bean&lt;context:property-placeholder location="cl...

z_alvin的博客 2448

springmvc solr mysql_springmvc-solr-demo

#solr server版本: 7.7.1 / 7.7.2#java jdk版本1.8网上教程1.5.5.RELEASE会版本冲突,其他版本未知org.springframework.data : 2.1.1.RELEASE##简单sol安装(内置)将 solr-7.7.1\server\lib\ext 所有jar复制到 webapps\solr\WEB-INF\lib将 solr-7.7....

weixin_29174141的博客 132

Solr快速入门第八讲——使用Solr模拟京东站内搜索功能

项目需求 使用Solr模拟京东站内的商品搜索功能,要求满足如下需求: 可以根据关键字搜索商品信息; 可以根据商品分类和价格过滤搜索结果; 可以根据价格排序 如果你有精力的话,还可以实现基本的分页功能,但很遗憾的是这里暂不实现分页。 最后你要达成的界面效果如下图所示。 项目环境搭建 。。。 ...

李阿昀的博客 1170

solr综合案例

1. 综合案例 1.1. 需求 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字、分类、价格搜索商品信息,也可以根据价格进行排序,并且实现分页功能。 界面如下: 1.2分析 开发人员需要的文档:静态页面(根据UI设计由美工给出)、数据库设计、原型设计 1.2.1 UI 分析 1.2.2 架构分析 架构分为: (1)、solr服务器。(已经...

weixin_30546189的博客 188

Solr基础知识三(整合SSM)

前两篇讲了solr安装和导入数据,这篇讲如何整合到SSM中。 一、整合SSM   1.1 引入依赖   1.2 初始化solr   1.3 写service   1.4 写控制层   1.5 查询 二、IK分词器   2.1.添加jar包   下载地址:https://search.maven.org/search?q=com.github.magese   源码:https://github.com/magese/ik-analyzer-solr   2.2 添加配置文件(...

rizon886的博客 181
上一篇: 关于springMVC结合mybatis,thymeleaf,实现二级联动
下一篇: mysql判断时间是否是当天,昨天。。。
classabcd
博客等级 码龄9年 33粉丝 36原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值