子句说明
analyzer部分可以指定查询串的分词方式。可以指定全局或某些特定index的分词方式,也可以指定某些index不分词。
子句语法
analyzer=analyzer_description [{',' analyzer_description}]多个analyzer_description用逗号连接,analyzer_description为下列表中的值,各参数含义及其取值如下表所示:
参数名 | 取值范围 | 默认值 | 参数说明 |
no_tokenize_indexes | index_name1';'index_name2 | 无 | 支持查询中指定的index不分词(除分词以外的其他流程如归一化、去停用词会正常执行),多个index之间用';'分割 |
specific_index_analyzer | index_name'#'analyzer_name | 无 | 查询中指定index使用另外的分词器,该分词器会覆盖global_analyzer和schema的分词器。指定多个index时用';'隔开,例如:index1'#'analyzer1;index2'#'analyzer2。指定的值必须在analyzer.json里有配置 |
global_analyzer | IDENTIFIER | 无 | 查询中指定全局的分词器,该分词器会覆盖schema的分词器,指定的值必须在analyzer.json里有配置。 如没有指定global_analyzer,并且index不在specific_index_analyzer,no_tokenize_indexes,则按照建索引时候schema.json里配置的analyzer进行分词处理 |
示例:
指定某些index不分词(no_tokenize_indexes):
analyzer=no_tokenize_indexes:default注:查询中default这个index不进行分词,但归一化、去停用词等其他流程仍会正常执行。多个index之间用';'分隔,例如no_tokenize_indexes:index1;index2。
为指定index指定分词器(specific_index_analyzer):
analyzer=specific_index_analyzer:index2#aliws注:index2使用aliws分词器,该分词器会覆盖global_analyzer和schema中的配置。指定多个index时用';'隔开,例如specific_index_analyzer:index1#extend_analyzer;index2#aliws。指定的分词器必须在analyzer.json中已配置。
指定全局分词器(global_analyzer):
analyzer=global_analyzer:singlews_analyzer注:全局使用singlews_analyzer分词器,该分词器会覆盖schema中的配置;但no_tokenize_indexes、specific_index_analyzer中指定的index仍按各自的规则处理。指定的分词器必须在analyzer.json中已配置。
综合示例(多个参数组合使用,参数之间用英文逗号连接):
analyzer=global_analyzer:singlews_analyzer,no_tokenize_indexes:default,specific_index_analyzer:default#extend_analyzer;index2#aliws 注:该查询指定default("笔记本")不分词,index2("联想")用aliws分词,global_analyzer指定的index(“华硕”)用singlews_analyzer分词。
注意事项
analyzer子句为可选子句
analyzer子句中no_tokenize_indexes 、specific_index_analyzer 、global_analyzer 、schema中的analyzer的优先级如下:no_tokenize_indexes > specific_index_analyzer > global_analyzer > schema。比如:index1在no_tokenize_indexes和specific_index_analyzer中均出现,因no_tokenize_indexes优先级更高,故index1不分词。
未填写analyzer子句,则采用schema指定的分词器 。