Solr入门介绍
solr入门案例
solr是apache下的一个全文检索引擎系统. 我们需要在服务器上单独去部署solr, 通过它的客户端工具包solrJ, 就是一个
jar包, 集成到我们项目中来调用服务器中的solr.
solr底层使用lucene开发
部署步骤:
1. 准备一个干净的Tomcat, 没有任何项目都可以运行的.
2. 将solr/example/webapps/solr.war复制到Tomcat/webapps/目录下
3. 运行Tomcat,运行日志会报错, 不要紧, 目的是对solr.war解压
4. 关闭Tomcat并删除Tomcat/wabapps下的solr.war
5. 将solr/example/lib/ext下的所有jar包复制到tomcat/webapps/solr/WEB-INF/lib文件夹下
6. 复制solr/example/solr文件夹到硬盘根目录并改名为solrhome(solrhome: 就是solr的家, 一个solr服务器只能有一个solrhome, 一个solrhome中可以都多个solrcore, 一个solrcore就是一个
solr实例.实例和实例之间是互相隔离的.)
7. 将solrhome的位置复制到Tomcat/webapps/solr/WEB-INf/web.xml中
8. 启动Tomcat, 访问http://localhost:8080/solr看到solr页面后说明部署成功
开发入门程序:
依赖包:Solr服务的依赖包,\solr\example\lib\ext ;solrj依赖包,\solr-4.10.3\dist\solrj-lib;junit
1、 创建HttpSolrServer对象,通过它和Solr服务器建立连接。
2、 创建SolrInputDocument对象,然后通过它来添加域。
3、 通过HttpSolrServer对象将SolrInputDocument添加到索引库。
4、 提交。
代码实现:
public class TestIndexManager {
@Test
public void testIndexCreat throws Exception, IOException {
HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
// 创建文档对象
SolrInputDocument solrDocument = new SolrInputDocument();
solrDocument.addField("id", "001");
solrDocument.addField("title", "xxx");
solrServer.add(solrDocument);
solrServer.commit();
}
}
修改:
@Test
public void testUpdate() throws Exception, IOException{
HttpSolrServer httpSolrServer = new HttpSolrServer("http://localhost:8080/solr");
SolrInputDocument solrInputDocument = new SolrInputDocument();
solrInputDocument.addField("id", "001");
solrInputDocument.addField("title", "yyy");
httpSolrServer.add(solrInputDocument);
httpSolrServer.commit();
}
删除:
@Test
public void testDelect() throws Exception, IOException{
HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
solrServer.deleteByQuery("id:001");
solrServer.commit();
}
查询:
@Test
public void testSelect() throws Exception{
HttpSolrServer httpSolrServer = new HttpSolrServer("http://localhost:8080/solr");
SolrQuery solrQuery = new SolrQuery();
solrQuery.setQuery("*:*");
QueryResponse query = httpSolrServer.query(solrQuery);
SolrDocumentList results = query.getResults();
for (SolrDocument solrDocument : results) {
System.out.println(solrDocument.get("id"));
System.out.println(solrDocument.get("title"));
}
}
Solr入门介绍的更多相关文章
- Solr学习笔记(5)—— Spring Data Solr入门
一.Spring Data Solr简介 前面已经介绍了通过solrJ来操作solr,那么我们如何将Solr的应用集成到Spring中?Spring Data Solr就是为了方便Solr的开发所研制 ...
- C# BackgroundWorker组件学习入门介绍
C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...
- Solr术语介绍:SolrCloud,单机Solr,Collection,Shard,Replica,Core之间的关系
Solr有一堆让人发晕的术语如:collections,shards,replicas,cores,config sets. 在了解这些术语之前需要先做做如下功课: 1)什么是倒排索引? 2)搜索引擎 ...
- 初识Hadoop入门介绍
初识hadoop入门介绍 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. < ...
- [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)
最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...
- [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍
前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...
- JavaScript入门介绍(二)
JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...
- JavaScript入门介绍(一)
JavaScript入门介绍 [经常使用的调试工具][w3school.com.cn在线编辑] [Chrome浏览器 开发调试工具]按F121.代码后台输出调试:console.log("t ...
- .NET 4 并行(多核)编程系列之一入门介绍
.NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. ...
随机推荐
- Ubuntu系统监控indicator-sysmonitor
参考: http://www.cnblogs.com/EasonJim/p/7130171.html 安装indicator-sysmonitor sudo add-apt-repository pp ...
- could not resolve property: leader_id of: pojo.Project
https://www.cnblogs.com/zhaocundang/p/9211270.html hibernate 双向1对多 出现问题 外键解析错误! log4j:WARN No append ...
- OEL的下载
https://edelivery.oracle.com 注意的是:第一次下载安装的时候需要首先安装installer.exe软件,然后再下载即可.
- css如何实现一个元素高度固定宽度按比例显示?
用padding-top百分比可以实现宽度固定高度按比例展示,现在的需求是对一个video视频的盒子div高度是固定的,宽度如何按比例展示? 解决后效果如图: 红框标注的即是我在上面高度比例固定的范围 ...
- Mybatis面试题整理(超详细)
1.什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动.创建连接.创建statement ...
- python调用shell脚本时需要切换目录
最近遇到了一个问题,就是python代码调用shell脚本时,发现输入输出的文件,总是和自己预想的有偏差,但是单独在linux下执行命令的时候,却没有错误.后来发现是相对路径的问题,因为执行pytho ...
- classmethod作用
>>> class A(object): bar = 1 def func1(self): print 'foo' >>> class A(object): bar ...
- centos 7 mysql启动失败--学会看错误日志
一.现象 mysql客户端连接时: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql ...
- 自定义Flume Sink:ElasticSearch Sink
Flume Sink的目的是从Flume Channel中获取数据然后输出到存储或者其他Flume Source中.Flume Agent启动的时候,它会为每一个Sink都启动一个SinkRunner ...
- 查询数据库中含clob,blob的表
查询含clob,blob的表select distinct ('TABLE "' || a.OWNER || '"."' || a.TABLE_NAME || '&quo ...