用Java开发Solr 实际应用教程

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr是一个全文检索服务器,只需要进行配置就可以实现全文检索服务。


Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。


solr教程:需要你了解Java、Linux、Tomcat等知识。

目前市面上对于solr的教程特别少、我希望给我们没有条件的编程学者整理solr知识点、一起学习、一起奋斗。

而且大学不会教solr、我也是自学的。一般像这种高级的东西只有培训机构可能会教了。




一、前提工作

1、下载

从Solr官方网站(http://lucene.apache.org/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。
Solr使用指南可参考:https://wiki.apache.org/solr/FrontPage。



2、Solr的安装及配置

需要把solr服务器安装到linux环境:
第一步:安装linux、jdk、tomcat。
创建新的solr目录:

[root@bogon ~]# mkdir /usr/local/solr


把tomcat复制到solr目录
[root@bogon ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat

[root@bogon ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r


第二步:把solr的压缩包上传到服务器。并解压。

第三步:把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war(可以不改)

[root@bogon dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war


第四步:解压war包、启动tomcat自动解压。先关闭tomcat。再删除solr.war。

第五步:把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中。

[root@bogon ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/


第六步:创建solrhome。Solrhome是存放solr服务器所有配置文件的目录。

[root@bogon example]# cp -r solr /usr/local/solr/solrhome


第七步:告诉solr服务器solrhome的位置。
需要修改solr工程的web.xml文件。

第八步:启动服务器(如下图2-1)




二、Java来开发solr

1、先打开solr后台管理页面(图2-1)



2、Java实现solr增删改差

在项目中添加依赖、或者架包、因为我用的是maven

        <!-- solrj客户端 -->
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
        </dependency>


3、实现类

3.1添加

    //http://192.168.29.132:8080/solr/ 这个一定要有 / ,不然会报IO异常
    private static final String SOLR_URL = "http://192.168.29.132:8080/solr/";



    /**添加、修改直接添加新的就好、但是id要一样才能修改、不然就是添加*/
    @Test
    public void addDocument() throws Exception {
        //创建一连
        SolrServer solrServer = new HttpSolrServer(SOLR_URL);
        //创建一个文档对象
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", "001");
        document.addField("item_title", "测试001");
        document.addField("item_price", 6666);
        //把文档对象写入索引库
        try {
            solrServer.add(document);
        }catch (Exception e){
            e.printStackTrace();
        }

        //提交
        solrServer.commit();
    }

结果图、删除看代码里面的注释说明




3.2删除

/**删除、*/
    @Test
    public void deleteDocument() throws Exception {
        //创建一连接
        SolrServer solrServer = new HttpSolrServer(SOLR_URL);
        solrServer.deleteById("001");
        solrServer.commit();
    }


结果图



3.4、查询

/**查询*/
    @Test
    public void queryDocument() throws Exception {
        SolrServer solrServer = new HttpSolrServer(SOLR_URL);
        //创建一个查询对象
        SolrQuery query = new SolrQuery();
        //设置查询条件
        query.setQuery("*:*");
        //分页开始
        query.setStart(20);
        //分页结束
        query.setRows(50);
        //执行查询
        QueryResponse response = solrServer.query(query);
        //取查询结果
        SolrDocumentList solrDocumentList = response.getResults();
        System.out.println("共查询到记录:" + solrDocumentList.getNumFound());
        for (SolrDocument solrDocument : solrDocumentList) {
            System.out.println(solrDocument.get("id"));
            System.out.println(solrDocument.get("item_title"));
            System.out.println(solrDocument.get("item_price"));
            System.out.println(solrDocument.get("item_image"));
        }
    }



书籍下载:solr安装与配置(http://download.youkuaiyun.com/detail/javawebrookie/9717355)







solr7.4教程 使用solr的完整流程        由于最近公司业务可能需要用到solr所以花了几天时间研究了一下,发现solr在网上的教程没有太好的入门文章,要么文章所写的solr版本太老,要么就是介绍的内容不够完整。所有我打算写一篇有完整使用流程的solr教程希望能让后面新接触solr的同学能更容易掌握它,另一方面也是对自己所学做一个梳理。由于本人水平有限如果有书写不对的地方还请多多指正,万分感谢。   本文摘要 一、下载与安... 阅读详情

相关推荐

Java Solr开发实战指南

在搜索引擎技术领域,Solr已成为一款高度流行的企业级开源搜索平台,以其强大的搜索功能、灵活的配置选项和活跃的社区支持而闻名。本章将概述Solr的历史、特点以及版本更新的趋势。Java 1.8的发布,带来了一系列革命性的改变。Lambda表达式、Stream API、新的日期时间API等都是这一版本中极具代表性的特性,它们不仅改进了Java编程模型,还提高了开发效率和运行时性能。通过本章的介绍,我们了解了JSON格式在Solr中的应用,以及SolrCloud架构的优化和与分布式系统的协同工作。

weixin_35987118的博客 1116

Solr基础及java操作solr例子

一、基本概念 二、solr索引操作 三、java操作solr例子 一、基本概念 因为Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。 通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。例如,Field ...

u010634288的博客 4420

CSP-J 初赛模拟卷1 题解

只有一棵子树有后继,其他的都是叶结点才能保证树的深度最大,此时还剩(n-5)个结点,最后加上2,得到(n-3),即为答案。题解:先修改p的指针域,让它的左指针域指向q,然后再让q的右指针域赋值给p的右指针域,再然后修改q的右指针域使其指向p,最后需要改变的指针域就是原先q结点的后继节点的左指针域内容。设n个元素的入栈序列是1,2,3,...,n,出栈序列为p1,p2,...,pn,若p1=n,则pi(1≤i≤n)的值为(1)输入的三个数中,第二个数应是[0,11]上的整数,否则会出现数组越界的问题。

Sat77GryHp_Pro的博客 2805

7.Java中使用Solr,历史版本(7.0.0之后、5.0.0~6.6.6、4.10.4之前)

尽管SolrJ提供的UpdateResponse和QueryResponse接口非常有用,但是使用特定于域的对象通常更方便,这些对象可以被您的应用程序更容易地理解。如果在基本URL中指定了核心或集合,则不需要对该客户端进行的后续请求来重新指定受影响的集合。Solr字段默认情况下共享带注释的变量的名称,但是,可以通过为注释提供显式字段名称来覆盖此名称。如果在基本URL中未指定核心或集合,则可以对任何核心/集合进行请求,但是必须在所有请求上指定受影响的核心/集合。如果需要更大的灵活性,则应排除集合/核心。

相互学习 共同进步 848

一篇关于轴承故障诊断的综述

在设备的故障检测中,有约30%-40%的设备故障是由轴承故障引起的,因此本文将列举有关检测轴承故障使用到的相关数据集,模型和算法。 数据集 现有的数据集,普遍由固定在电机马达上的两个震动检测器获得,并根据需要,分离震动数据在时域和频域上的特征以供网络模型学习。 不同的数据集,区别在于,检测的马达转速不同,环境不同,取样频率不同,一段样本的时长不同等等 (1)Case Western Reserve University (CWRU) Dataset 该数据集拥有多种数据,测量的时候,通过改变轴承.

weixin_42036144的博客 2万+

第三篇:AMD 和 Intel

它像“乐高积木”一样,可以通过标准化的接口与其他部分组合,构建复杂系统。理解组件后,你会发现从操作系统到微服务,现代软件本质上都是组件的组合!

u013089100的博客 1033

JAVA开发之Solr的配置使用和安装插件与数据库表同步数据

4、通过第三步以后,系统会启动solr自带的jetty服务器,通过 http://localhost:8983/solr/便可访问solr。1、解压solr-4.7.0.zip到你想到存放的路径,比如当前用户根目录/Users/liuxun/solr-4.7.0。Solr 下载地址:http://archive.apache.org/dist/lucene/solr/2、cmd打开命令行窗口,进入/Users/liuxun/solr-4.7.0/example目录。此时,solr已成功启动。

sulei627719296的博客 1055

SpringBoot实战教程-springboot概论

Spring Boot 是一个快速开发框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,以及自动配置。内置web容器,帮助开发者能够实现快速开发,简化了应用系统的初始搭建以及开发过程。

鸟哥哥的专栏 4158

Solr安装配置教程、java整合solr_jdk solr

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新需要这份系统化资料的朋友,可以戳这里获取。

2401_84181309的博客 1069

Vue2 - 详细实现网页 “开启录音并生成音频文件,上传到服务器效果“,浏览器录制外部音频调用麦克风并传到后端,兼容全部浏览器、支持 PC 网页或手机 H5 网页、可本地播放试听(详细示例运行代码)

vue,nuxt,uniapp,网页网站,麦克风,网页录音,MediaRecorder,浏览器录音,移动端h5网页,手机端录音,web网页录音,recorder-core官方文档,Recorder,非https怎么本地录音,录音报错失败,录音后怎么播放音频,如何获取录音mp3文件,解决一直不提示麦克风权限,小白详细教程,实时录音,调用浏览器麦克风录音,浏览器不兼容,wav,mp3,vue怎么实现网页录音呢,vue2网页录音并上传到服务器,web如何实现录制音频,vue网页录音,音频录制播放和上传服务器,vu

🏆 前端领域优质创作者 6005

【科研建模】Pycaret自动机器学习框架使用流程及多分类项目实战案例详解

对pycaret的使用流程进行梳理,并详细介绍了基于多分类预测的案例

lys_828的博客 782

Java+Solr+Liunx 实际应用教程

Java+Solr+Liunx 实际应用教程 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

用心做每件事 3732

12.工具高级参数CogCalibNPointToNPointTool

CogCalibNPointToNPointTool是一种多点2D坐标校正工具,用于将图像像素坐标转换为物理世界坐标。该工具通过两组点(图像坐标点和物理坐标点)计算最佳转换关系,并将结果保存供后续使用。操作步骤包括获取图像、添加坐标点对、计算转换参数。校正结果会显示平移、缩放、旋转等参数及RMS误差值,较大的误差可能表明点位置不准确或自由度不足。该工具广泛应用于机器视觉领域,通过9点标定等案例可验证坐标转换的准确性并优化参数设置。

205

Solr 基础教程

这个教程涵盖了如何启动 Solr、将各种数据源导入 Solr 集合以及熟悉 Solr 管理和搜索界面的内容。 教程分为三个部分,每一部分都在前一部分的基础上构建。第一部分的练习将要求您启动 Solr,创建一个集合,索引一些基本文档,然后执行一些搜索操作。 第二个练习使用不同的数据集,探讨如何请求数据集中的分面信息。 第三个练习鼓励您开始使用自己的数据,并制定实施计划。 最后,我们将介绍空间搜索,并向您展示如何将 Solr 实例恢复到干净的状态。

lt5227的博客 1602

uniapp:解决微信小程序包体积超过2M的优化方案+详解分包问题,编译小程序体积大于2M不能上传和预览提示体积太大的处理教程,uniApp微信小程序主包过大问题如何解决(排查可疑点+分包+最小改动)

uniapp微信小程序开发,如何解决打包太大无法预览发布的问题,uniApp微信小程序包体积超过2M的优化方法,uni-app打包微信小程序主包超2M终极解决方案,使用uniapp开发微信小程序使用uni_modules导致主包文件过大,无法发布的解决方法,UniApp开发的微信小程序主包过大问题及解决方案 编译小程序时Node-modules被打入主包,小程序体积大于2M不能上传和预览,怎么处理,解决微信小程序主包太大问题,微信小程序中主包和分包过大,详解分包问题,uni-app 微信小程序发布时,主包超

✅ 精选推荐文章 5068

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

solr入门教程

Solr是一个独立的企业级搜索应用服务器,它对外提供API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引(solr生成倒排索引,数据库生成的索引是二叉树索引,效率差距很大);也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。问一位大神,他说现在很多公司也开始使用elasticsearch了。   一、solr安装准备:tomcat7.0版本

实践是最好的方法 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux 安装Solr 图解教程

1.进入Solr官网 我装的是6.5.0的版本 2.下载Tomcat 进入官网: 使用xshell连接虚拟机,在/usr目录下,新建Tomcat目录和Solr目录,把相应的包上传进去 解压Solr和Tomcat (1)解压Solr (2)解压Tomcat 3.复制Solr文件夹中的一些文件到apache-tomcat下: (1)将 solr 压缩包中 solr\server\solr-webapp\文件夹下有个webapp文件夹,将之复制到tomcat\webapps\目录下,文件夹名改

BugRoot的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

怎么在java项目中直接使用Solr

最近在用java写一个网站,想要在里面做一个搜索引擎,选用的技术是现在比较常见的Solr 如果你是初学者,我想,这篇分享博客肯定会有帮助。 它的使用宏观上分为下面一步: 进行环境配置 增加新域【域就像数据库里面的一个表,用来管理索引和相关配置。】 添加中文分词器 java与Solr的结合【solrJ】 项目的发布过程【Solr和java项目的URL】 下面进行一步一步的写。 一、进行环境配...

默默的笔记 3420

solr使用教程

solr教程

qq_40405398的博客 2131

Solr安装配置教程、java整合solr

Solr安装配置教程,java整合solr

真正的大师永远怀着一颗学徒的心 1584

java操作solr

pom引入依赖 <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version&g...

letterss的博客 405

【Solr 学习笔记】Solr 源码启动教程

本教程详细介绍了通过 IntelliJ IDEA 启动和调试 Solr 9 源码的步骤。内容包括从下载和配置 Solr 源码开始,解释如何使用 Git 获取代码,并通过 IDEA 构建项目。详述了设置 SolrHome 和 SolrCore 目录,使用 Gradle 命令和插件管理代码风格,以及在非 SolrCloud 和 SolrCloud 模式下启动和调试 Solr 服务的方法。

lt5227的博客 1762

solr 安装和使用

solr中域名和域的类型,等同于mysql中表字段和表字段类型上面有Book实体类,有字段name、author、introduce;需要在solr中定义对应的域,以及对应的分词器这里笔者对introduce字段进行中文分词,使用上面配置的中文分词器 text_ik需要在solr_book实例下面的managed-schema文件中添加域的配置下面笔者使用 Linux 搭建的 solr 进行操作编辑 managed-schema 文件在managed-schema文件末尾添加域的配置。

悟世君子的博客 5555

solr的java代码

import java.io.IOException; import java.util.List; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.Ht...

an341221的专栏 303

solr java 教程_[Java教程]solr 学习之简介及安装

[Java教程]solr 学习之简介及安装0 2017-03-04 00:00:56一、solr简介Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。Solr是一个全文检索服务器,只需要进行配置就可以实现全文检索服务。Solr它是...

weixin_42366533的博客 180

Solr 1.3 简单使用教程

本文主要是使用solr的简单教程。详细内容可以参考http://lucene.apache.org/solr/tutorial.html或者其他网站。1.首先下载solr1.3.0,地址为http://www.apache.org/dyn/closer.cgi/lucene/solr/2.将下载下的文件解压。3.下载下的solr自带一个jetty启动的版本,运行apache-solr-1.3.0/

lokibalder的专栏 5410
上一篇: Redis+Spring 整合应用教程
下一篇: Java+Solr+Liunx 实际应用教程
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值