Solr的中文分词

Resin
设置Resin.conf

Resin
设置Resin.conf

</web-app>
<web-app id="/solr" document-directory="webapps/solr" archive-path="/usr/local/resin-3.1.0/webapps" character-encoding="utf-8">
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/usr/local/resin-3.1.0</env-entry-value>
</env-entry>
</web-app>

Schema.xml
Schema.xml使用的基本的数据类型

<fieldtype name="sint" class="solr.SortableIntField" />
<fieldtype name="slong" class="solr.SortableLongField"/>
<fieldtype name="sfloat" class="solr.SortableFloatField"/>
<fieldtype name="sdouble" class="solr.SortableDoubleField" />
<fieldtype name="date" class="solr.DateField" />

特殊的类型:带有分词和过滤
<fieldtype name="text_ws" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="CnTokenizerFactory"/> CnTokenizerFactory
</analyzer>
</fieldtype>

<fieldtype name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="CnTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="CnTokenizerFactory"/>
</analyzer>
</fieldtype>

自定义数据
<field name="id" type="string" indexed="true" stored="true" /> (id且不能重复)
<field name="article" type="text" indexed="true" stored="true" />
<field name="title" type="text" indexed="true" stored="true" />
<field name="subject" type="text" indexed="true" stored="true" />
<field name="category" type="text" indexed="true" stored="true"/>
<field name="body" type="text" indexed="true" stored="true" />

 

<uniqueKey>id</uniqueKey> 定义id不能重复
<defaultSearchField>body</defaultSearchField> 默认查询的数据列

 

加入自己的数据

新建xml文件
加入如下内容
<add>

<doc>
<field name="id">00001</field>
<field name="article">示例</field>
<field name="title">标题</field>
<field name="subject">科目</field>
<field name="category">种类</field>
<field name="body">body文本body文本body文本body文本</field>
</doc>
<doc>
<field name="id">00001</field>
<field name="article">示例</field>
<field name="title">标题</field>
<field name="subject">科目</field>
<field name="category">种类</field>
<field name="body">body文本body文本body文本body文本</field>
</doc>
</add>
上传至服务器/exampledocs 目录下,在此目录下运行
java -Durl=http://localhost:8080/solr/update -jar post.jar *.xml 命令。
这里是最新版本的post.jar
生成的索引文件在/solr/data目录下的index。

 

猎兔中文分词在solr中的运用,增加类CnTokenizerFactory
package org.apache.solr.analysis;
public class CnTokenizerFactory extends BaseTokenizerFactory
{
public TokenStream create(Reader input)
{
return new CnTokenizer(input);
}
}