Solr 最初由 CNET Networks 开发,2006 年初,Apache Software Foundation 在 Lucene 顶级项目的支持下得到了 Solr。Solr 于 2007 年 1 月酝酿成熟,在整个项目孵化期间,Solr 稳步地积累各种特性并吸引了一个稳定的用户群体、贡献者和提交人。Solr 现在是 Lucene(Apache 的基于 Java 的全文本搜索引擎库)的一个子项目。
用Solr服务器建索引的前提是你已经把Solr服务器给搭建起来了
public class CreateIndex {
public static final String LINE_SEP = System.getProperty("line.separator");
public static final String localhost = "http://10.0.0.201:8080/solr/update";
String command = "<add>" + LINE_SEP + "<doc>" + LINE_SEP
+ "<field name=\"url\">" + "http://www.caihongtang.com/" + "</field>"
+ LINE_SEP
+ "<field name=\"title\">" + "倍感亲切" + "</field>"
+ LINE_SEP
+ "<field name=\"keywords\">" + "倍感的亲切" + "</field>"
+ LINE_SEP
+ "<field name=\"description\">" + "倍感" + "</field>"
+ LINE_SEP
+ "<field name=\"content\">" + "倍感亲切" + "</field>"
+ LINE_SEP
+ "<field name=\"pagerank\">" + 0 + "</field>"
+ LINE_SEP
+ "</doc>" + LINE_SEP + "</add>";
void doIndex() {
try {
System.out.println(command);
doPost(command);
doPost("<commit/>");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String doPost(String command) throws Exception {
String results = null;
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(localhost);
RequestEntity re = new StringRequestEntity(command, "text/xml", "UTF-8");
post.setRequestEntity(re);
try {
int statusCode = client.executeMethod(post);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + post.getStatusLine());
}
byte[] responseBody = post.getResponseBody();
results = new String(responseBody);
} catch (Exception e) {
System.err.println("Fatal protocol violation: " + e.getMessage());
e.printStackTrace();
} finally {
post.releaseConnection();
}
return results;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CreateIndex cr = new CreateIndex();
cr.doIndex();
}
}
以上代码是用HttpClient来解决HTTP客户端与服务器进行通讯编程问题的,就是把你想要建的索引转变成XML文件,把这个XML文件传到http://10.0.0.201:8080/solr/update这个地址,这个URL地址就是solr服务器的所在地址,然后把建索引的事就全交给Solr来处理就行了,Solr已经把Lucene又封装了一编,所以Solr会自己调用Lucene来把传入的数据建索引。
至于输出索引的路径,那就得看Solr的配置了。
分享到:
- 2009-04-10 17:19
- 浏览 1609
- 评论(0)
- 论坛回复 / 浏览 (0 / 2584)
- 查看更多
相关推荐
Solr服务器是一个强大的全文搜索引擎,它是Apache Lucene项目的一个子项目。Solr提供了一个高效、可扩展的平台,用于处理和检索大量数据。基于Solr搭建的服务器旨在为各种应用程序提供快速、高效的搜索功能,使其...
2. **SolrJ**:Java客户端库,允许开发者通过代码与Solr服务器交互,执行索引操作和查询请求。 3. **命令行工具**:如`post.jar`,用于批量导入数据到Solr索引。 4. **API支持**:Solr提供了RESTful API,支持通过...
- 使用`CommonsHttpSolrServer`类创建Solr服务器连接。 - 设置必要的参数,如URL、超时时间、最大连接数等。 2. **添加文档** - 创建一个SolrInputDocument对象,并设置相应的字段值。 - 调用`add`方法将文档...
安装Solr通常涉及下载最新版本的Solr压缩包,解压后配置服务器环境,启动Solr服务器。在“lib”目录下,可能包含了Solr运行所需的依赖库,这些库文件对于Solr的正常工作至关重要。 4. **创建索引**: 要对网站...
对于XML格式的索引创建请求,Solr使用`XmlUpdateRequestHandler`来处理。该类继承自`ContentStreamHandlerBase`,并在其中定义了一个`handleRequestBody`方法来处理具体的请求体数据。 在处理索引创建命令时,关键...
Solr服务器搭建是一个重要的步骤,它是Apache Lucene项目的一个企业级搜索平台,广泛应用于全文检索、数据索引和搜索解决方案。下面将详细讲解如何在Java 1.7和Tomcat 1.7环境下搭建Solr 4.10.3单机版。 一、Java...
- 然后,DIH将变更转化为Solr兼容的格式,并发送到Solr服务器进行更新。 - 最后,Solr执行更新操作,可以是单个文档或批量文档的更新。 6. **增量包的使用** 在你的描述中提到了"solr增量添加更新索引包",这...
- 启动Solr服务器,通过命令行执行`bin/solr start`。 2. **创建核心(Core)**: - 在`solr_home`下创建一个新的目录,如`my_core`,代表一个新的Solr核心。 - 在`my_core`中创建`conf`目录,拷贝`solr/example...
索引:客户端(可以是浏览器可以是java程序)发送post请求到solr服务器,发给solr服务器一个文档(xml、json),就可以进行一个添加索引删除索引、修改索引的操作。 搜索:客户端(可以是浏览器可以是java程序)发送...
Solr服务器是Apache Lucene项目的一个子项目,是一款开源的企业级搜索平台,专门用于处理大量文本数据的全文检索、搜索和分析。它基于Java开发,能够处理多种数据源,包括XML、JSON、CSV等,提供了高效、可扩展的...
### Solr服务器的搭建与配置实例 #### 一、Solr简介 Solr是一个高性能、可伸缩的企业级搜索引擎平台,它可以作为一个独立的服务运行,并且提供了丰富的API接口,支持多种编程语言,使得开发者能够轻松地集成搜索...
### Solr搜索服务器安装配置详解 #### 一、Solr简介 Apache Solr是一款开源的高性能全文搜索引擎,基于Lucene库构建。它采用Java开发,提供了丰富的API接口,支持多种编程语言,使得开发者能够轻松地集成搜索功能到...
Solr服务器是一款强大的开源搜索引擎,由Apache软件基金会开发,它基于Java并支持分布式搜索和处理大量数据。在Linux和Windows环境下部署Solr服务器是常见的需求,这两种操作系统各有其特点和优势。 **Linux环境下...
主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询
3. **处理权限和认证**:当索引的远程文件位于受保护的服务器时,需要在Solr配置中添加必要的认证信息。这可能涉及到基本认证、OAuth或其他定制的身份验证机制,具体取决于远程服务器的设置。 4. **增量索引与更新*...
3. **创建定时任务**:在Solr服务器的外部,如Linux服务器,你可以使用cron job或Windows的任务计划程序来定期执行更新索引的命令。命令通常是发送一个HTTP请求到Solr的Update Handler来触发数据导入。 4. **增量...
2. **发送请求**:使用SolrJ库(`apache-solr-solrj-3.6.2.jar`)可以与Solr服务器进行交互。SolrJ是一个Java客户端API,允许开发者执行HTTP请求,发送查询并接收响应。`commons-httpclient-3.1.jar`和`commons-...
在本项目中,"Weiz.Solr"似乎是一个C#开发的Solr客户端库,用于简化与Solr服务器的交互。下面将详细介绍Solr的核心概念以及如何在C#环境中进行开发和查询。 1. **Solr概述** - **全文检索**:Solr能够对文本进行...