1. 了解下载的solr
下载的Solr(3.3)包括以下几个包:
各个包具体有些什么,这里不细说,详见E:\nutch\nutch 项目文档总结\slor\开源企业搜索引擎SLOR应用教程.pdf。
对于example,你可以通过运行start.jar来启动solr服务器。启动命令如下:java -Dsolr.solr.home=nutch -jar start.jar。-Dsolr.solr.home=nutch用来指定solrHome的,默认是example/solr。以上的命令则会将solr.home设为example/nutch。当然,要想使nutch作为solrHome,得先新建nutch文件夹,并将solr下的conf文件夹复制到nutch下。以后修改nutch下的conf中的schema.xml等内容即可。
2. Schema.xml等文件的了解。
对于solr,重要的文件有schema.xml,solrconfig.xml。下面就来做大致的讲解。
(1) schema.xml
对于添加中文分词,了解schema.xml的配置是非常重要的。
在schema.xml主要配置了一下内容:fieldType和fields。其中,fieldType是用来配置各种fieldType的类型的,fields则是配置建索引的每个域的名字,是否分词,是否存储的。在fieldType中就配置了你要使用的分词器(tokenizer)以及过滤器(filter)。例子如下:
<fieldType name="text_general_rev" class="solr.TextField" positionIncrementGap="100">对于这个元素及其属性,solr官网上解释的很详细,摘录如下:
A Solr schema.xml file allows two methods for specifying the way a text field is analyzed. (Normally only field types of solr.TextField will have Analyzers explicitly specified in the schema):
</fieldtype>
</fieldtype>
从中可以看到,设置含有中文分词的field含有两种方式:一种通过<class>子元素指定,一种通过<tokenizer>子元素指定。
(详见:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters)
在IK分词的下载包中,有个讲解的pdf教程,在这里面,对于如何将Ik分词添加到schema.xml,讲解的很详细,上面提及的两种方式都有。
在schema中,配置好了fieldType后,配置fields,将索引的类型引用上面已配置的fieldType即可。
(2) solrconfig.xml
在这个配置文件中,定义了所要加载的jar包路径,将jar包放到已存在的配置路径中,或者新建配置路径,即可在启动solr服务器时,加载所需的jar包。所以,只要将IK的jar包放到该配置文件的指定路径即可。
(3) 验证
上述两个步骤完成后,重启solr,在/admin/analysis.jsp页面中选择type为添加的分词的域,输入一段话,点analyze,即可看到分词效果。如图:
其它:
3》建议建立了一个拷贝字段,将所有的全文字段复制到一个字段中,以便进行统一的检索:
Xml代码
1. <field name="all" type="text" indexed="true" stored="false" multiValued="true"/>
并在拷贝字段结点处完成拷贝设置:
Xml代码
1. <copyField source="name" dest="all"/>
2. <copyField source="summary" dest="all"/>