gpt4 book ai didi

c# - 如何在Elasticsearch charFilter中两次映射相同的字符

转载 作者:行者123 更新时间:2023-12-03 01:47:55 25 4
gpt4 key购买 nike

我在索引中使用希腊字符,并且尝试用希腊语调进行搜索。例如,如果我使用“παλια”进行搜索,我想找回“παλια”和“παλιά”。我正在尝试为字符α创建双重映射但是我得到了一个错误“匹配\“α\”已经添加”。这是我的代码:

 var response = client1.CreateIndex("thetrialindex",
th =>
th.Settings(
s =>
s.Analysis(
a =>
a.Analyzers(
an =>
an.Custom("my_analyzer",
cu => cu.Tokenizer("keyword").CharFilters("my_char_filter"))
)
.CharFilters(c1=>c1.Mapping("my_char_filter", ma1=>ma1.Mappings("α => ά","α => α")))
)));

最佳答案

最好的方法是将IcuTransform与所需的语言一起使用。
例如,为了将拉丁字符翻译成希腊语,您可以使用如下代码:

.IcuTransform("latingreek", lg => lg.Id("Latin-Greek; NFD; [:Nonspacing 
Mark:] Remove; NFC").Direction(IcuTransformDirection.Forward))

并将其添加到索引和搜索分析器。

关于c# - 如何在Elasticsearch charFilter中两次映射相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42413366/

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