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.csdn.net/detail/javawebrookie/9717355)
分享到:
相关推荐
总结,本“Solr 3.5开发应用教程”将引导你从基础安装到实际应用,全面掌握Solr搜索引擎的使用技巧。同时,提供的“教程重要说明.txt”可能包含更多关于实践过程中的注意事项和常见问题的解答,配合“Solr 3.5开发...
在Java开发中,搜索引擎和文本处理是一个重要的领域,而Apache Solr是其中一个非常流行的开源全文搜索平台。这个项目工程实例是关于如何使用Java与Solr进行集成,实现分词搜索功能的示例。Solr提供了强大的文本分析...
在Java开发中,使用Solr的主要好处包括: 1. **全文搜索**:Solr内置了强大的全文索引功能,能够对文本进行高效的关键词匹配,提高搜索体验。 2. **分词**:Solr支持多种分词器,如中文分词器,能将中文文本拆分成...
Solr是一个高性能的全文搜索引擎,基于Apache Lucene开发,使用Java 5编写。它不仅继承了Lucene的强大功能,还提供了更丰富的查询语言以及更好的性能优化。Solr具备高度可配置性和可扩展性,支持通过HTTP请求提交XML...
实际应用中,Solr 可用于电子商务网站的商品搜索、新闻门户的全文检索、企业内部文档库的快速查找等多种场景。通过合理的配置和优化,Solr 可以提供高并发、低延迟的搜索体验。 总之,Apache Solr 是一个功能强大...
Solr实际上依赖于Lucene,它是Lucene的服务器化版本。Solr利用Lucene的核心技术实现了更高级的功能,如Web服务接口、多语言支持、分布式搜索等。因此,虽然它们之间存在依赖关系,但Solr提供了比Lucene更为丰富的...
通过本教程的学习,我们了解了 Solr 的基本概念、安装配置方法以及如何使用 Solrj 进行开发。此外,还通过京东的实际案例展示了 Solr 在实际项目中的应用。对于开发者而言,掌握 Solr 的使用不仅可以提高搜索系统的...
标题中的"solr ssm java"表明这是一个使用Java语言,结合Spring、SpringMVC和MyBatis(SSM)框架的项目,其中整合了Apache Solr搜索引擎。让我们深入了解一下这些技术及其相互作用。 **Solr**: Apache Solr是基于...
在实际应用中,你可能还需要关注 Solr 的集群和复制功能,这允许你在多台机器上部署 Solr,形成一个SolrCloud,以提高系统的可用性和处理能力。同时,Solr 的监控和日志记录也是运维过程中不可忽视的部分,确保系统...
在实际应用中,我们通常会通过编程语言与Solr交互,如Java、Python或PHP。Solr提供了客户端库,简化了这个过程。以Java为例,我们可以使用SolrJ库来发送请求和处理响应: ```java SolrClient client = new ...
6. **Maven或Gradle依赖管理**:在现代的Java开发中,我们通常使用Maven或Gradle这样的构建工具来管理依赖。在对应的`pom.xml`(Maven)或`build.gradle`(Gradle)文件中,添加对应Solr和其依赖的坐标,构建工具会...
在压缩包`solr-custom-score-master`中,可能包含了这样的示例代码,你可以根据实际需求进行研究和应用。 总结来说,通过Solr的函数查询和自定义插件,我们可以灵活地构建电商搜索的自定义打分机制。这不仅可以提升...
Solr是Apache软件基金会的一个开源项目,主要用Java开发,它基于强大的全文搜索引擎库Lucene。Solr不仅提供了比Lucene更高级的查询语法,还具有高度可配置和可扩展性,优化了索引和搜索性能。Solr能够独立运行,常被...
这个Demo项目非常适合初学者,通过实际运行和修改代码,你可以更好地理解Solr与Java的整合过程,掌握Solrj的使用技巧,以及如何在Java应用中实现高效的全文搜索功能。同时,它也能帮助你了解Solr的索引和查询机制,...
开发Solr应用程序时,可以使用HTTP接口与Solr进行交互,通常通过发送JSON或XML格式的请求来执行索引操作、查询或者更新配置。Solr提供了RESTful API,使得与各种编程语言的集成变得简单。例如,你可以使用Python的...
SSM整合Solr是将Spring、SpringMVC和MyBatis三个开源框架与Apache Solr搜索引擎集成的过程。在Java Web开发中,这种整合能够帮助企业构建高效、可扩展的搜索...在实际开发中,理解并熟练掌握这些知识点是非常重要的。
《基于Solrj开发Solr主从搜索引擎服务的Dubbo组件》 在现代信息技术领域,搜索引擎作为信息检索的重要工具,其高效、精准的搜索能力对于企业和用户来说具有极高的价值。本项目实践聚焦于利用Solrj开发一个支持主从...