Solr 4.0 基础教程

摘要:
本文只是Solr4.0的基本教程。我不经常写东西。请原谅我写得不好。欢迎来到233413850小组进行讨论和学习。部署前的准备:Solr4.0必须在Java 1.5或更高版本的Java虚拟机中运行。要运行标准Solr服务,只需安装JRE。解决方案4.0:http://www.apache.org/dyn/closer.cgi/lucene/solr/4.0.0本文演示了Tomcat 7.0。如果出现错误,系统无法运行,请用更高版本替换JDK。Solr版本支持的JDK版本不同。您可以参考官方版本的不同版本。

 本文只是Solr 4.0的基础教程,本人不经常写东西,写的不好请见谅,欢迎到群233413850进行讨论学习。

        转载请标明原文地址:http://my.oschina.net/zhanyu/blog/86147

       先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为HttpSolrServer,我是找了半天才发现,大家以后可以注意。

     部署前准备:

  • 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 目录:

        Solr 4.0 基础教程第1张

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


1<env-entry>
2   <env-entry-name>solr/home</env-entry-name>
3   <env-entry-value>E:SolrHome</env-entry-value>
4   <env-entry-type>java.lang.String</env-entry-type>
5</env-entry>



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

            E:Tomcat7.0

            E:apache-solr-4.0.0

            E:SolrHome


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

        Solr 4.0 基础教程第2张

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

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

Solr 4.0 基础教程第3张

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


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


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

        

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

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

        

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

        之后在exampledocs目录下手动创建一个solr1.xml文件:

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

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

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

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

Solr 4.0 基础教程第4张

如图成功的添加的索引,看下E:SolrHomesolrtestdataindex下的文件:

Solr 4.0 基础教程第5张

        进入solr页面:

        Solr 4.0 基础教程第6张

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

免责声明:文章转载自《Solr 4.0 基础教程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux安装jdk脚本前端工程师技能之photoshop巧用系列第二篇——测量篇下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Solr学习02:搭建Solr环境

一、安装虚拟机   Solr 必须运行在Java1.6 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可,但如果需要扩展功能或编译源码则需要下载JDK 来完成。可以通过下面的地址下载所需JDK 或JRE :   OpenJDK ( http://java.sun.com/j2se/downloads.html )  Sun (h...

solr搜索之搜索精度问题我已经尽力了!!!

solr搞了好久了,没啥进展,没啥大的突破,但是我真的尽力了! solr7可能是把默认搜索方式去掉了,如下: 在solr7里找了半天以及各种查资料也没发现这个默认搜索方式,后来想,可能是被edismax里的mm取代了吧,都是控制搜索精度的,如下: 这个mm还是挺解决问题的,但是对于我们公司来说就差那么一点,就一点。就这一点我没有解决。正常情况下这个参数...

认识solr结构,了解核心的文件目录

下载solr并解压后,发现solr的目录里有很多的东西,此时我们可能会感到很恐慌,不知如何下手,下面让我带你认识它。 1、解压后的solr目录结构如下: 虽然里面有很多的文件,但是我们需要的其实就两个,如上图画有红框的文件solr和webapps,其他的文件你可以先忽略它,有兴趣可以看看《五分钟solr教程》。 2、部署到tomcat 根据《solr部署...

solr的配置文件及其含义

solr与.net系列课程(二)solr的配置文件及其含义        solr与.net系列课程(二)solr的配置文件及其含义        本节内容还是不会涉及到.net与数据库的内容,但是不要着急,这都是学时solr必学要掌握的东西,solr可不是像其他的dll文件一样,只需要引用就能调出方法与数据的,你不配置好是无法使用,前两节主要是起铺垫...

Solr学习笔记——查询

1.进入Solr管理界面http://localhost:8983/solr/ 可以看到Query中有若干的参数,其意义如下(参考:http://www.jianshu.com/p/3c4cae5dee8d) Solr的查询语法: Solr默认有三种查询解析器(Query Parser): Standard Query Parser DisMax Qu...

Solr——Solr Admin页面Query查询界面各个字段参数解释

Solr——页面查询各个字段参数解释  q:查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*,类似于sql中的where 1=1。 fq(filter query):过滤查询,提供一个可选的筛选器查询。返回在q查询符合结果中同时符合的fq条件的查询结果,例如:q=id:1&fq=sort:[1 TO 5]&fq=sec...