word_delimiter 和 split_on_numerics 删除所有标记
word_delimiter with split_on_numerics removes all tokens
在分析alpha 1a beta
时,我希望标记的结果是[alpha 1 a beta]
。为什么 myAnalyzer
不成功?
POST myindex
{
"settings" : {
"analysis" : {
"analyzer" : {
"myAnalyzer" : {
"type" : "custom",
"tokenizer" : "standard",
"filter" : [ "split_on_numerics" ]
}
},
"filter" : {
"split_on_numerics" : {
"type" : "word_delimiter",
"split_on_numerics" : true,
"split_on_case_change" : false,
"generate_word_parts" : false,
"generate_number_parts" : false,
"catenate_all" : false
}
}
}
}
}
现在当我运行
GET /myindex/_analyze?analyzer=myAnalyzer&text=alpha 1a beta
未返回任何令牌。再一次,为什么?
要在自定义 word-delimiter 过滤器中实现这一点,需要设置 "generate_word_parts" : true
和 "generate_number_parts" : true
。
这基本上确保 "alphanumeric token" 在拆分时应该生成其数字和单词部分。
示例过滤器如下:
{
"settings" : {
"analysis" : {
"analyzer" : {
"myAnalyzer" : {
"type" : "custom",
"tokenizer" : "standard",
"filter" : [ "split_on_numerics" ]
}
},
"filter" : {
"split_on_numerics" : {
"type" : "word_delimiter",
"split_on_numerics" : true,
"split_on_case_change" : false,
"generate_word_parts" : true,
"generate_number_parts" : true,
"catenate_all" : false
}
}
}
}
}
如果您希望将原始术语 "1a"
编入索引,您需要设置
preserve_original : true
被索引一个
在分析alpha 1a beta
时,我希望标记的结果是[alpha 1 a beta]
。为什么 myAnalyzer
不成功?
POST myindex
{
"settings" : {
"analysis" : {
"analyzer" : {
"myAnalyzer" : {
"type" : "custom",
"tokenizer" : "standard",
"filter" : [ "split_on_numerics" ]
}
},
"filter" : {
"split_on_numerics" : {
"type" : "word_delimiter",
"split_on_numerics" : true,
"split_on_case_change" : false,
"generate_word_parts" : false,
"generate_number_parts" : false,
"catenate_all" : false
}
}
}
}
}
现在当我运行
GET /myindex/_analyze?analyzer=myAnalyzer&text=alpha 1a beta
未返回任何令牌。再一次,为什么?
要在自定义 word-delimiter 过滤器中实现这一点,需要设置 "generate_word_parts" : true
和 "generate_number_parts" : true
。
这基本上确保 "alphanumeric token" 在拆分时应该生成其数字和单词部分。
示例过滤器如下:
{
"settings" : {
"analysis" : {
"analyzer" : {
"myAnalyzer" : {
"type" : "custom",
"tokenizer" : "standard",
"filter" : [ "split_on_numerics" ]
}
},
"filter" : {
"split_on_numerics" : {
"type" : "word_delimiter",
"split_on_numerics" : true,
"split_on_case_change" : false,
"generate_word_parts" : true,
"generate_number_parts" : true,
"catenate_all" : false
}
}
}
}
}
如果您希望将原始术语 "1a"
编入索引,您需要设置
preserve_original : true
被索引一个