简介:
solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。它的官方网址在http://lucene.apache.org/solr/。solr需要运行在一个servlet容器里,例如tomcat。solr在lucene的上层提供了一个基于HTTP/XML的Web
Services,我们的应用需要通过这个服务与solr进行交互。
前提,下载tomcat。省略。
第一步:下载Solr,http://www.apache.org/dyn/closer.cgi/lucene/solr/
我下载的是3.5版本,把它解压到E盘。E:/apache-solr-3.5.0
第二步:修改conf\server.xml,把8080端口所在的那一行修改如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
也有用下面这个的。
<Connector port="8080" URLEncoder="UTF-8" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>
其实就是增加了URIEncoding="UTF-8"这一配置。推荐用第一种,这两个区别暂时不知。
第三步:配置Solr
还是在conf目录下,增加Catalina\localhost\solr.xml 文件,如果conf文件夹下没有Catalina,新建它。
solr.xml内容:
<Context docBase="E:/apache-solr-3.5.0/dist/apache-solr-3.5.0.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="E:/apache-solr-3.5.0/example/solr" override="true" /></Context>
第四步:启动Tomcat。输入http://localhost:8080/solr/出现欢迎界面,表示成功。
第五步:简单Java Api 操作
参考http://www.iteye.com/topic/315330写的很详细了。
一个简单的写入,读出数据的完整代码如下:
package com.weishangye.test.solr;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
public class SolrTest1 {
public static void main(String[] args) throws Exception {
String url = "http://localhost:8080/solr";
SolrServer server = new CommonsHttpSolrServer(url);
server.deleteByQuery( "*:*" );// delete everything!
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField( "id", "id1", 1.0f );
doc1.addField( "name", "doc1", 1.0f );
doc1.addField( "price", 10 );
SolrInputDocument doc2 = new SolrInputDocument();
doc2.addField( "id", "id2", 1.0f );
doc2.addField( "name", "冰羽", 1.0f );
doc2.addField( "price", 20 );
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add( doc1 );
docs.add( doc2 );
server.add( docs );
server.commit();
SolrQuery query = new SolrQuery();
query.setQuery( "*:*" );
query.addSortField( "price", SolrQuery.ORDER.desc );
QueryResponse rsp = server.query( query );
SolrDocumentList docsList = rsp.getResults();
for(Iterator<SolrDocument> doc =docsList.iterator();doc.hasNext();){
SolrDocument d = doc.next();
System.out.print(d.getFieldValue("id")+"->");
System.out.println(d.getFieldValue("name"));
}
}
}
分享到:
相关推荐
总结来说,这个"简单java实现的solr以及redis小demo"项目将教会你如何利用Java API与Solr和Redis交互,实现基本的搜索功能和缓存策略。通过实践这个项目,你可以更深入地理解这两个强大的工具,并为未来的开发工作...
总的来说,Solr-Solrj 5.0.0是Java开发者与Solr集成的有力工具,尤其在处理中文文本时,通过合理的配置和使用分词器,可以实现高效、准确的全文搜索。在实际项目中,开发者还应关注性能调优、错误处理以及与其它系统...
**paoding-dic-home.properties** 是Solr配置文件之一,主要负责配置Solr使用的外部词典路径及监控策略。 - **配置项含义解释** - `paoding.dic.home`: 指定了Solr使用的词典(dictionary)所在的目录路径。例如...
### Solr配置与SolrJ使用详解 #### 一、Solr简介 Solr是一款开源的、高性能的企业级全文搜索引擎,它可以独立运行并通过HTTP协议提供服务。用户可以通过发送XML文件来创建索引,或者通过HTTP GET请求来进行检索,...
总的来说,Solr 的安装和配置涉及到 JDK、Tomcat 的安装与环境变量设置,以及 Solr 核心的创建、配置和数据的导入。在实际操作中,需要注意路径的正确性,字符集的设置,以及索引字段与分词文件的一致性,这些都是...
9. **Demo演示**:压缩包中的"demo"部分可能包含了一个简单的示例,展示如何使用IKAnalyzer进行中文分词搜索。它可能包括了创建索引、上传数据、执行查询的命令或代码,以及预期的搜索结果。 通过这个详细的安装和...
为了方便开发者更高效地集成和操作Solr,Easynet团队开发了Easynet.Solr库,它为.NET开发者提供了简单易用的Solr客户端接口,极大地简化了Solr的操作流程。 Easynet.Solr库的核心功能主要涵盖四大部分:添加、修改...
- `solrconfig.xml`:这是Solr的主要配置文件,用于设置索引、查询、缓存等行为。 - `schema.xml`:定义字段类型和字段,用于解析和存储文档内容。 3. **SolrCloud模式** - 在分布式环境中,Solr运行在SolrCloud...
**四、Solr配置** 在`solr_home`目录下,每个集合(core)都有自己的配置文件,主要包括: - `solrconfig.xml`:定义索引和查询行为,如查询解析器、过滤器、请求处理器等。 - `schema.xml`:定义字段类型和字段,这...
在这个"solr的一个小例子"中,我们将探讨如何搭建一个基础的Solr实例,并进行简单的文档索引与查询操作。 首先,我们需要下载并安装Solr。Apache Solr通常以压缩包形式提供,文件名为`solrdemo`可能就是这个压缩包...
接下来,你需要配置Solr服务器的连接信息,如主机地址、端口和核心名。然后,创建一个`SolrServer`实例,可以使用`HttpSolrServer`或`CloudSolrServer`,取决于你是使用单节点还是分布式Solr环境。 ```java ...
1. 安装与配置:首先,你需要下载并安装Solr,配置Solr服务器的运行环境,包括设置数据目录、定义Schema(字段定义)等。 2. 创建索引:将需要搜索的数据导入到Solr,这个过程称为创建索引。可以使用Solr提供的...
如果要将solrb与solr cloud一起使用: gem 'zk' # required for solrb solr-cloud integration gem 'solrb' 配置 通过环境变量设置Solr URL 使用Solrb的最简单方法是SORL_URL环境变量(其中包含核心名称): ENV[ ...
- **自动配置**:SpringDataSolr通过Spring Boot的自动配置功能,可以轻松设置Solr服务器连接。 - **Repository抽象**:提供了基于接口的CRUD操作,使得对Solr的操作如同操作数据库一样简单。 - **查询构造器**:...
接下来,我们来看看如何创建一个简单的LuceneDemo: 1. **引入依赖**:首先,你需要在项目中引入Lucene的依赖库。对于Java项目,可以通过Maven或Gradle添加相应的依赖项。 2. **创建索引**:创建一个`Directory`...
在这个过程中,我们可以设置不同的参数,如分段策略,以优化存储和检索效率。 搜索是Lucene的另一大亮点。在"luceneDemo"中,我们可以学习如何构建查询对象(Query)并使用IndexSearcher执行查询。查询可以是简单的...
- 使用`IndexWriterConfig`配置`IndexWriter`,设置Analyzer和其他参数。 - 创建`IndexWriter`实例,并调用`addDocument(Document)`方法将文档加入索引。 3. **创建文档** `Document`是Lucene中用于表示数据的...
Lucene本身是一个底层库,但有多个基于它的工具和框架,如Solr和Elasticsearch,它们提供了更高级的服务,如分布式索引、集群管理和RESTful API。这些工具简化了部署和管理,适合大型和复杂的应用场景。 总结,...
实际应用中,还可以结合Lucene与其他技术,如Solr或Elasticsearch,实现更复杂的企业级搜索解决方案。 总之,Lucene 是一个强大且灵活的搜索库,提供了全面的文本处理和索引机制。通过这个演示,你可以快速上手并...
Elasticsearch与Solr都是基于Lucene的全文搜索引擎,但Elasticsearch在分布式处理和实时性上更胜一筹。相对于MongoDB这样的NoSQL数据库,Elasticsearch更专注于搜索和分析功能,而在存储大量结构化数据方面,数据库...