solr入门与配置

1.软件下载

(1).apache-solr-3.1.0,写这篇文章时的最新版本,请到apache官网上去下载,解压到如 E:/apache-solr-3.1.0。

(2).apache-tomcat-6.0.32,apache官网上去下载,解压到如 E:/apache-tomcat-6.0.32。

 

2.solr安装到tomcat

(1).修改 E:/apache-tomcat-6.0.32/conf/server.xml,加个 URIEncoding="UTF-8",把 8080 的那一块改为:

 

(2).把下面的内容保存到 E:/apache-tomcat-6.0.32/conf/Catalina/localhost/solr.xml,没有这个目录自行创建。

E:/apache-solr-3.1.0/example/solr这个目录可以用来作为配置solr的模板使用,以后这个目录就将作为solr home使用

如果把example/solr拷到其它目录下了(如C:/soft/solr),有个文件需要修改一下,$SOLR_HOME/conf/solrconfig.xml,找到dataDir设置,

dataDir是存放索引的目录,默认为<dataDir>${solr.data.dir:./solr}</dataDir>,用的是相对路径,这个需要修改为完整路径: <dataDir>${solr.data.dir:C:/soft/solr/data}</dataDir> 

(3).启动tomcat,并打开 http://localhost:8080/solr/admin/ 查看界面,显示出如下界面,表示配置成功。

 
3.配置文件
(1).E:/apache-solr-3.1.0/example/solr/conf下的schema.xml,这个配置文件相当于数据表配置文件,它定义了加入索引数据的数据类型。由于现在schema.xml中的内容是官方自带的例子,不太容易懂,现将它替换成自己的内容,定义数据类型后,然后再自定义几条对应数据,然后用命令java -jar post.jar *.xml生成索引,供用户查询

(a).首先需要在types结点内定义一个FieldType子结点,包括name,class,positionIncrementGap等等一些参数,name就是这个FieldType的名称,class指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为。在FieldType定义的时候最重要的就是定义这个类型的数据在建立索引和进行查询的时候要使用的分析器analyzer,包括分词和过滤。在例子中text这个FieldType在定义的时候,在index的analyzer中使用官方的CJK这个分词包。

 

(b).接下来的工作就是在fields结点内定义具体的字段(类似数据库中的字段),就是filed,filed定义包括name,type(为之前定义过的各种FieldType),indexed(是否被索引),stored(是否被储存),multiValued(是否有多个值)等等。

 
(2)重启tomcat,此时会报如下错误:

org.apache.solr.common.SolrException: QueryElevationComponent requires the schema to 

 have a uniqueKeyField implemented using StrField。  

此错误是因为solr版本高的问题,在低版本中不会出错,可以在solrconfig.xml 中删除两个结点(即Elevation 组件)解决此问题:

手动在 E:/apache-solr-3.1.0/example/exampledocs 创建两个xml 数据文件。分别保存为 demo-doc1.xml 和 demo-doc2.xml,这两个文件中的内容要和schema.xml中定义的数据结构相一致,demo-doc1.xml如下:

demo-doc2.xml:

windows默认文件文件是以ANSI编码,注意这两个文件一定要以UTF-8来保存,否则在提交生成索引时会报错

 

提交数据做索引,到 E:/apache-solr-3.1.0/example/exampledocs,运行:

此时到E:/apache-solr-3.1.0/example/solr/data/index目录下,可以发现和Lucene创建索引时产生的类似文件

 

查看搜索结果:

搜索用户=bory.chan :http://localhost:8080/solr/select/?q=user%3Abory.chan&version=2.2&start=0&rows=10&indent=on

通过这个简单示例,大家对solr应该有了一定了解,下面看一下如何加入中文分词,如何结合solr搭建自己的应用服务器。

 

参考连接:

1.http://blog.chenlb.com/2009/05/apache-solr-quick-start-and-demo.html

2.http://lianj-lee.iteye.com/blog/424693

 

当自己是在前人基础上,稍作改动时,以后我会注意要标明出处。这是对别人劳动成果的尊重!

拿来主义可以说是一种抄袭行为,请尊重原创!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值