`
747017186
  • 浏览: 331453 次
社区版块
存档分类
最新评论

lucence和solr

 
阅读更多

引用:http://my.oschina.net/zhanyu/blog/86147

     部署前准备:

  • Solr 4.0 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可。
  • Solr 4.0 :  http://www.apache.org/dyn/closer.cgi/lucene/solr/4.0.0
  • 本文以Tomcat7.0  进行演示。
  • 如果出现错误无法运行,请更换更高版本的JDK,Solr各版本支持JDK的版本不尽相同,可以查阅官方中各个版本的不同。

    Solr 4.0 目录:

        

        这里是我的部署方式,Tomcat安装好之后把apache-solr-4.0.0\example\webapps下的solr.war文件拷贝到Tomcat下的Tomcat7.0\webapps目录下,然后启动Tomcat 报错不用管,solr.war会自动解压,之后打开Tomcat7.0\webapps\solr\WEB-INF\web.xml,把下面代码复制进去放到后面:

 

//这个是指定solrHome所在的目录

1
2
3
4
5
<env-entry>
   <env-entry-name>solr/home</env-entry-name> //这个参数不要换
   <env-entry-value>E:\SolrHome</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

 

 

            其中  E:\SolrHome  是存放solr配置文件等,修改为自己文件的位置,为了看着更清晰直观,你可以这样放:

            E:\Tomcat7.0

            E:\apache-solr-4.0.0

            E:\SolrHome

 

            现在可以重新启动Tomcat了,没有报错,通过这个地址进入Solr4.0页面:http://localhost:8080/solr 

        

            如果进入以上界面说明成功了,没有成功的话页面会有ERROR提示。

            如图:左侧core0,core1等是solr 4.0中的示例,core0和core1位于apache-solr-4.0.0\example\multicore所有文件都下拷贝到E:\SoleHome下,core0和core1可以理解为两个库,都是独立的,用来存放索引以及生成这些索引文件所需要的配置文件,solrtest是我测试建立的目录,如图:

        没添加一个库都需要在solr.xml里面进行配置,这个比较简单

 

1
2
3
4
5
6
7
8
<solr persistent="false">
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />
    <core name="collection1" instanceDir="collection1" />
    <core name="solrtest" instanceDir="solrtest"/>
  </cores>
</solr>
1
name="",是库的名字,instanceDir="",是目录

 

        每个目录下包含两个文件夹conf和data,data下有两个文件夹index和tlog,index是存放生成的索引文件,tlog存放log,conf下是必要的配置文件schema.xml和solrconfig.xml,可以参考官方或者core里面的配置文件:

 

这里是schema文件,用于定义索引字段的type类型和字段名字.也可以定义“中文分词”类型的。一般中文分词的索引我们用的是,text_ika,所以需要引入jar包。

        

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" ?>
<schema name="example solr test" version="1.1">
  <types>
   <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
   <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
  </types>
 
 <fields>  
  <!-- general -->
  <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
  <field name="type" type="string" indexed="true" stored="true" multiValued="false" />
  <field name="name" type="string" indexed="true" stored="true" multiValued="false" />
  <field name="_version_" type="long" indexed="true" stored="true"/>
 </fields>
 
 <!-- field to use to determine and enforce document uniqueness. -->
 <uniqueKey>id</uniqueKey>
 
 <!-- field for the QueryParser to use when an explicit fieldname is absent -->
 <defaultSearchField>name</defaultSearchField>
 
 <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
 <solrQueryParser defaultOperator="OR"/>
</schema>

        solrconfig.xml我还不是很懂,在这里就不讲了,但是必须配置(好像是必须配):

        这个基本上维持原样即可,不做改变。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 可以从core文件中copy过来 -->
<config>
  <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
   
  <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
 
  <dataDir>${solr.solrtest.data.dir:}</dataDir>   solr.solrtest.data.dir存放的是索引目录
 
  <updateHandler class="solr.DirectUpdateHandler2">
    <updateLog>
      <str name="dir">${solr.solrtest.data.dir:}</str>
    </updateLog>
  </updateHandler>
 
  <requestHandler name="/get" class="solr.RealTimeGetHandler">
    <lst name="defaults">
      <str name="omitHeader">true</str>
    </lst>
  </requestHandler>
   
  <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
 
  <requestDispatcher handleSelect="true" >
    <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
  </requestDispatcher>
   
  <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
  <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
  <requestHandler name="/update" class="solr.UpdateRequestHandler"  />
  <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
 
  <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
    <lst name="invariants">
      <str name="q">solrpingquery</str>
    </lst>
    <lst name="defaults">
      <str name="echoParams">all</str>
    </lst>
  </requestHandler>
 
  <!-- config for the admin interface -->
  <admin>
    <defaultQuery>solr</defaultQuery>
  </admin>
 
</config>

        之后在exampledocs目录下手动创建一个solr1.xml文件://这个也可以是数据库的数据源,这里只是提供xml的数据源,用于提交,形成solr的索引。

1
2
3
4
5
6
7
8
<?xml version="1.0" ?>
<add>
  <doc>
    <field name="id">solr1</field>
    <field name="type">type1</field>
    <field name="name">my solr test</field>
  </doc>
</add>

         跟schema.xml中的字段对应,好了现在可以提交数据了,这里在window命令窗口提交数据,把E:\apache-solr-4.0.0\example\exampledocs下的post.jar复制到 E:\SolrHome\exampledocs下

        打开命令窗口CD 到E:\SolrHome\exampledocs下使用命令,Tomcat不要忘了开:

java -Durl=http://localhost:8080/solr/solrtest/update -Ddata=files -jar post.jar solr1.xml


如图成功的添加的索引,看下E:\SolrHome\solrtest\data\index下的文件:


        进入solr页面:

        

        点击Executu Query查询,右侧生成了地址可以打开查看,到此结束。

分享到:
评论

相关推荐

    IKAnalyzer 适用 lucene和solr 5.4.0版本

    它适用于Lucene和Solr等全文检索引擎,为这些平台提供高效的中文分词支持。IKAnalyzer的设计目标是:简单易用、高度可配置、持续优化,并且支持扩展。 **IKAnalyzer 的主要特点** 1. **灵活性**:IKAnalyzer 支持...

    IK中文分词器2012版支持Lucene和solr

    IK中文分词器是一款在Java环境下广泛使用的开源中文分词工具,主要针对Lucene和Solr等全文检索引擎设计。2012FF_u1版本是IK Analyzer的一个重要更新,它增强了对中文词汇的处理能力,同时扩展了对Lucene和Solr的支持...

    IKAnalyzer 适用 lucene和solr 5.4.0版本(新)

    IKAnalyzer 是一个专门为中文分词设计的开源分析器,它在 Lucene 和 Solr 中广泛使用,以提高中文文本检索的准确性和效率。这个压缩包 "ik-analyzer-solr5.4.0" 显然是针对 Lucene 5.4.0 和 Solr 5.4.0 版本优化的 ...

    lucene,solr的使用

    通过本文的学习,我们不仅了解了Lucene和Solr的基本概念、特点以及工作原理,还对比分析了它们之间的异同之处,并探讨了各自适用的应用场景。无论是对于开发者还是运维人员而言,掌握这两种优秀的搜索引擎技术都将...

    Lucene&solr.zip

    Lucene和Solr是两个非常重要的开源搜索引擎工具,它们在大数据处理、信息检索以及网站全文搜索等领域发挥着至关重要的作用。本篇将详细阐述Lucene和Solr的基本概念、工作原理以及如何在实际应用中使用它们。 **1. ...

    lucene&solr原理分析

    lucene&solr原理分析,lucene搜索引擎和solr搜索服务器原理分析。

    IK分词器-Lucene与Solr学习中使用

    IK分词器是Java开发的一款高效、灵活的中文分词工具,特别适用于Lucene和Solr等全文搜索引擎的中文处理。在对文本进行索引和搜索时,分词器的作用至关重要,它能将中文文本拆分成有意义的词汇,以便进行后续的分析和...

    lucene-solr-sandbox:Apache Lucene和Solr开源搜索软件插件模块沙箱

    Apache Lucene和Solr是两个在信息技术领域广泛使用的开源搜索技术。Lucene是一个高性能、全文本搜索引擎库,而Solr是基于Lucene构建的一个企业级搜索服务器,提供了更高级别的功能和服务。"lucene-solr-sandbox"是这...

    lucene、solr中文分词器

    在构建高效的全文搜索引擎时,Apache Lucene 和 Solr 是两个非常重要的开源库。它们提供了强大的信息检索和文本分析功能,但Lucene默认的分词器并不适用于中文处理。因此,对于中文索引和搜索,我们需要引入专门针对...

    黑马2016年javaee32期lucene和solr的使用视屏教程

    关于solr和lucene的使用方法,这是传智播客黑马的教学视频

    lucene-solr:Apache Lucene和Solr开源搜索软件

    Apache Lucene和Solr Apache Lucene是用Java编写的高性能,功能齐全的文本搜索引擎库。 Apache Solr是使用Java编写并使用Apache Lucene的企业搜索平台。 主要功能包括全文搜索,索引复制和分片以及结果分面和突出...

    搜索引擎解密Lucene与Solr的前世今生.ppt

    本篇将深入探讨两款广泛应用的开源搜索引擎技术——Lucene和Solr,揭示它们的核心原理以及发展历程。 首先,Lucene是一个强大的全文索引库,由Doug Cutting于1999年开发,最初是一个Java程序。2001年,Lucene被捐赠...

    lucene solr框架代码实例(可直接运行)

    本文将围绕“lucene solr框架代码实例(可直接运行)”这一主题,深入探讨Lucene和Solr的核心特性,以及如何通过它们构建实际的搜索应用。 首先,Lucene是Apache软件基金会的一个开源项目,它提供了一个高性能、...

    lucene简单介绍及solr搭建使用

    标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...

    LoremIpsumSearch:包含与 lucene 和 solr 一起使用的搜索算法

    包含与 lucene 和 solr 一起使用的搜索算法 bbox 查询: 完全删除 solr 索引: curl -H "Content-Type: text/xml" --data-binary ' : ' curl -d ' ' curl -d '' export CLASSPATH="&lt;lucene&gt;/lucene/replicator/...

    lucene-solr源码,编译成的idea项目源码

    本人用ant idea命令花了214分钟,35秒编译的lucene-solr源码,可以用idea打开,把项目放在D:\space\study\java\lucene-solr路径下,再用idea打开就行了

    搜索引擎 Lucene、Solr

    5. Solr是一个基于Lucene构建的企业级搜索服务器,它提供了搜索引擎的索引、搜索、排序等功能,并通过RESTful API与各种客户端进行交互。Solr在实现搜索引擎方面,不仅继承了Lucene的强大功能,还提供了分布式搜索、...

    lucene solr

    lucene solr 全文搜索框架,该教程有助于深入了解lucene solr的用法以及他么们之间的比较

Global site tag (gtag.js) - Google Analytics