在 Solr 可视化管理界面中,Core 的管理菜单项中都会有 Analysis。表示根据 Scheme.xml(managed-schema)中配置要求进行解析。
对英文解析就比较简单了,只要按照空格把英文语句拆分成英文单词即可
但是如果条件是中文时,把一句话按照字进行拆分就不是很合理了。正确的方式是按照合理的词组进行拆分。
1.中文分词器安装及配置步骤
上传 ik-analyzer.jar 到 webapps 中
去 -传送门- 下载对应版本的 ik-analyzer。可以在"软件/Analyzer"中直接获取。
1.1 上传 jar 到指定目录
上传 ik-analyzer-8.2.0.jar 到
/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib 目录中
1.2 修改配置文件
修改/usr/local/solr/server/solr/testcore/conf/managed-schema
#vim /usr/local/solr/server/solr/testcore/conf/managed-schema
添加下面内容。
排版:Esc 退出编辑状态下:gg=G
<field name="myfield" type="text_ik" indexed="true" stored="true" />
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
1.3 重启
# cd /usr/local/solr/bin
# ./solr stop -all
# ./solr start -force
1.4 验证
可以在可视化管理界面中找到 myfield 属性进行验证。
2.managed-schema 配置说明
2.1 < fieldType/>
表示定义一个属性类型。在 Solr 中属性类型都是自定义的。在上面配置中 name="text_ik"为自定义类型。当某个属性取值为 text_ik 时 IK Analyzer 才能生效。
2.2 < field/>
表示向 Document 中添加一个属性。
常用属性:
- name: 属性名
- type:属性类型。所有类型都是 solr 使用
< fieldType>
配置的 - indexed: 是否建立索引
- stored: solr 是否把该属性值响应给搜索用户。
- required:该属性是否是必须的。默认 id 是必须的。
- multiValued:如果为 true,表示该属性为复合属性,此属性中包含了多个其他的属性。常用在多个列作为搜索条件时,把这些列定义定义成一个新的复合属性,通过搜索一个复合属性就可以实现搜索多个列。当设置为 true 时与
< copyField source="" dest=""/>
结合使用
2.3 < uniqueKey>
唯一主键,Solr 中默认定义 id 属性为唯一主键。ID 的值是不允许重复的。
2.4 < dynamicField>
名称中允许*进行通配。代表满足特定名称要求的一组属性。