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/ 查看界面,显示出如下界面,表示配置成功。
(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(是否有多个值)等等。
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
当自己是在前人基础上,稍作改动时,以后我会注意要标明出处。这是对别人劳动成果的尊重!
拿来主义可以说是一种抄袭行为,请尊重原创!