`
liujiekasini0312
  • 浏览: 147403 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Solr配置与简单Demo

 
阅读更多

简介:

solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。它的官方网址在http://lucene.apache.org/solr/。solr需要运行在一个servlet容器里,例如tomcatsolrlucene的上层提供了一个基于HTTP/XMLWeb Services,我们的应用需要通过这个服务与solr进行交互。

前提,下载tomcat。省略。

第一步:下载Solrhttp://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实现的solr以及redis小demo"项目将教会你如何利用Java API与Solr和Redis交互,实现基本的搜索功能和缓存策略。通过实践这个项目,你可以更深入地理解这两个强大的工具,并为未来的开发工作...

    solr-solrj 5.0.0 demo

    总的来说,Solr-Solrj 5.0.0是Java开发者与Solr集成的有力工具,尤其在处理中文文本时,通过合理的配置和使用分词器,可以实现高效、准确的全文搜索。在实际项目中,开发者还应关注性能调优、错误处理以及与其它系统...

    solr demo文件txt版

    **paoding-dic-home.properties** 是Solr配置文件之一,主要负责配置Solr使用的外部词典路径及监控策略。 - **配置项含义解释** - `paoding.dic.home`: 指定了Solr使用的词典(dictionary)所在的目录路径。例如...

    solr配置和solrj使用(demo)

    ### Solr配置与SolrJ使用详解 #### 一、Solr简介 Solr是一款开源的、高性能的企业级全文搜索引擎,它可以独立运行并通过HTTP协议提供服务。用户可以通过发送XML文件来创建索引,或者通过HTTP GET请求来进行检索,...

    solr安装配置

    总的来说,Solr 的安装和配置涉及到 JDK、Tomcat 的安装与环境变量设置,以及 Solr 核心的创建、配置和数据的导入。在实际操作中,需要注意路径的正确性,字符集的设置,以及索引字段与分词文件的一致性,这些都是...

    solr_5.0_tomcat7_IKAnalyzer中文分词安装及demo

    9. **Demo演示**:压缩包中的"demo"部分可能包含了一个简单的示例,展示如何使用IKAnalyzer进行中文分词搜索。它可能包括了创建索引、上传数据、执行查询的命令或代码,以及预期的搜索结果。 通过这个详细的安装和...

    easynet.solr开发与使用

    为了方便开发者更高效地集成和操作Solr,Easynet团队开发了Easynet.Solr库,它为.NET开发者提供了简单易用的Solr客户端接口,极大地简化了Solr的操作流程。 Easynet.Solr库的核心功能主要涵盖四大部分:添加、修改...

    solr-7.7.3配置详解,跟springboot整合 (二)

    - `solrconfig.xml`:这是Solr的主要配置文件,用于设置索引、查询、缓存等行为。 - `schema.xml`:定义字段类型和字段,用于解析和存储文档内容。 3. **SolrCloud模式** - 在分布式环境中,Solr运行在SolrCloud...

    全文检索(solr)实例

    **四、Solr配置** 在`solr_home`目录下,每个集合(core)都有自己的配置文件,主要包括: - `solrconfig.xml`:定义索引和查询行为,如查询解析器、过滤器、请求处理器等。 - `schema.xml`:定义字段类型和字段,这...

    solr的一个小例子

    在这个"solr的一个小例子"中,我们将探讨如何搭建一个基础的Solr实例,并进行简单的文档索引与查询操作。 首先,我们需要下载并安装Solr。Apache Solr通常以压缩包形式提供,文件名为`solrdemo`可能就是这个压缩包...

    使用java实现solr-7.1.0的api和solr最新支持的sql查询

    接下来,你需要配置Solr服务器的连接信息,如主机地址、端口和核心名。然后,创建一个`SolrServer`实例,可以使用`HttpSolrServer`或`CloudSolrServer`,取决于你是使用单节点还是分布式Solr环境。 ```java ...

    solr search

    1. 安装与配置:首先,你需要下载并安装Solr,配置Solr服务器的运行环境,包括设置数据目录、定义Schema(字段定义)等。 2. 创建索引:将需要搜索的数据导入到Solr,这个过程称为创建索引。可以使用Solr提供的...

    solrb:Solr +Ruby+ OOP +:red_heart:= Solrb

    如果要将solrb与solr cloud一起使用: gem 'zk' # required for solrb solr-cloud integration gem 'solrb' 配置 通过环境变量设置Solr URL 使用Solrb的最简单方法是SORL_URL环境变量(其中包含核心名称): ENV[ ...

    springdataSolrDemo.rar

    - **自动配置**:SpringDataSolr通过Spring Boot的自动配置功能,可以轻松设置Solr服务器连接。 - **Repository抽象**:提供了基于接口的CRUD操作,使得对Solr的操作如同操作数据库一样简单。 - **查询构造器**:...

    Lucene初探,一个初级的LuceneDemo

    接下来,我们来看看如何创建一个简单的LuceneDemo: 1. **引入依赖**:首先,你需要在项目中引入Lucene的依赖库。对于Java项目,可以通过Maven或Gradle添加相应的依赖项。 2. **创建索引**:创建一个`Directory`...

    luceneDemo

    在这个过程中,我们可以设置不同的参数,如分段策略,以优化存储和检索效率。 搜索是Lucene的另一大亮点。在"luceneDemo"中,我们可以学习如何构建查询对象(Query)并使用IndexSearcher执行查询。查询可以是简单的...

    lucene小demo

    - 使用`IndexWriterConfig`配置`IndexWriter`,设置Analyzer和其他参数。 - 创建`IndexWriter`实例,并调用`addDocument(Document)`方法将文档加入索引。 3. **创建文档** `Document`是Lucene中用于表示数据的...

    lunece入门之HelloWorld

    Lucene本身是一个底层库,但有多个基于它的工具和框架,如Solr和Elasticsearch,它们提供了更高级的服务,如分布式索引、集群管理和RESTful API。这些工具简化了部署和管理,适合大型和复杂的应用场景。 总结,...

    lucene 例子

    实际应用中,还可以结合Lucene与其他技术,如Solr或Elasticsearch,实现更复杂的企业级搜索解决方案。 总之,Lucene 是一个强大且灵活的搜索库,提供了全面的文本处理和索引机制。通过这个演示,你可以快速上手并...

    安装教程总结_Elasticsearch

    Elasticsearch与Solr都是基于Lucene的全文搜索引擎,但Elasticsearch在分布式处理和实时性上更胜一筹。相对于MongoDB这样的NoSQL数据库,Elasticsearch更专注于搜索和分析功能,而在存储大量结构化数据方面,数据库...

Global site tag (gtag.js) - Google Analytics