7.2. 自定义分词器
LSQL提供了拓展自定义分词的方式。具体使用方法跟solr的schema.xml非常类似。
- 首先 编辑lib下的cl_field_type_define.txt文件,增加新的分词类型
<fieldType name="{类型名称}" class="solr.TextField" positionIncrementGap="100000" omitNorms="true" >
<analyzer type="index">
<tokenizer class="{实现的类名称}" {创建索引切词的一些参数} />
</analyzer>
<analyzer type="query">
<tokenizer class="{实现的类名称}" {搜索时候切词的一些参数} />
</analyzer>
</fieldType>
下面为内部的wildcard4的写法例子:
<fieldType name="wildcard4" class="solr.TextField" positionIncrementGap="100000" omitNorms="true" >
<analyzer type="index">
<tokenizer class="cn.lucene.plugins.lucene.tokenizer.wildcard.api.CLWildcardFactory" TokenLength="4" isforsearch="false" />
</analyzer>
<analyzer type="query">
<tokenizer class="cn.lucene.plugins.lucene.tokenizer.wildcard.api.CLWildcardFactory" TokenLength="4" isforsearch="true" />
</analyzer>
</fieldType>
- 编辑lib下cl_field_type_list.txt文件,将分词类型映射(注册)成lsql的数据类型一行一个
wildcard4
wildcard8
- 然后将相关依赖的jar包放到lsql的lib目录下,并重启
- 建表示例
create table myntest(
c1 y_{类型注册名}_i,
c2 y_{类型注册名}_is,
c3 y_{类型注册名}_ismp
);