gpt4 book ai didi

elasticsearch - 如何增加Elasticsearch Metaphone语音过滤器的最大代码长度?

转载 作者:行者123 更新时间:2023-12-02 23:03:03 27 4
gpt4 key购买 nike

我正在对Elasticsearch使用语音插件过滤器。 https://github.com/elastic/elasticsearch-analysis-phonetic

创建索引时,我正在使用以下设置创建自定义过滤器。

soundex: {
type: "phonetic",
encoder: "metaphone",
replace: "true"
}

这可以正常工作,但是正在创建最大长度为4个字符的变音符号,这给我的搜索结果增加了太多噪音。例如,我同时获得避孕药和对照药的KNTR(这是医学数据)。

根据 Unexpected results from Metaphone algorithm,底层Java API包含一个setMaxCodeLen值。在Elasticsearch中配置它时如何设置?

我想做类似的事情:
    soundex: {
type: "phonetic",
encoder: "metaphone",
replace: "true",
maxcodelen: 8
}

但是到目前为止,我还无法确定是否有可能配置编码器以增加编码 token 的最大长度。可以配置吗?如果是这样,怎么办?

最佳答案

我认为不可能进行配置。我已经检查了插件的源代码,并且看起来很容易达到您的要求。

PhoneticTokenFilterFactory.java中,您将看到:

this.maxcodelength = 0;
this.replace = settings.getAsBoolean("replace", true);

如您所料,可以配置 replace参数,但 maxcodelenght始终设置为 0。因此,您可以通过以下方式更改该行:
this.maxcodelength = settings.getAsInt("maxcodelen", 0);

我将新属性命名为“maxcodelen”,因为它是您在示例中使用的名称。

然后,您可以对其进行编译并从本地( check how to install local plugins)安装修改后的插件。

如果一切正常,您可以发送请求请求:)

关于elasticsearch - 如何增加Elasticsearch Metaphone语音过滤器的最大代码长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29726364/

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