gpt4 book ai didi

elasticsearch - 带有 split_on_numerics 的 word_delimiter 删除所有标记

转载 作者:行者123 更新时间:2023-11-29 02:53:54 24 4
gpt4 key购买 nike

在分析 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

没有 token 被返回。再一次,为什么?

最佳答案

在自定义中实现这一点 word-delimiter过滤器需要设置 "generate_word_parts": true"generate_number_parts": true

这基本上确保了拆分时“字母数字标记”应该生成其数字和单词部分。

示例过滤器如下:

{
"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

被索引一个

关于elasticsearch - 带有 split_on_numerics 的 word_delimiter 删除所有标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30280909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com