gpt4 book ai didi

elasticsearch - 查询Elasticsearch索引中是否带有重音的单词

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

我查询“café”一词,得到20篇文章。然后,我重复搜索“cafe”一词,只会得到3篇文章。因此,我正在寻找一种处理带有重音字母的单词的方法,就像处理没有重音字母的单词一样。
我的问题还在于,我已经有一个已填充的索引,因此必须修改现有系统。我正在使用Elasticsearch 6.5。

我找到了一些有用的信息,并执行了以下步骤:

设置折叠分析仪

curl -H "Content-Type: application/json" --user <user:pass> -XPUT http://localhost/test/_settings?pretty -d '{
"analysis": {
"analyzer": {
"folding": {
"tokenizer": "standard",
"filter": [ "lowercase", "asciifolding" ]
}
}
}
}'

修改内容字段的现有映射
curl -H "Content-Type: application/json" --user <user:pass> -XPUT http://localhost/test/mytype/_mapping -d '{
"properties" : {
"content" : {
"type" : "text",
"fields" : {
"folded" : {
"type" : "text",
"analyzer" : "folding"
}
}
}
}
}'

进行搜索
curl -H "Content-Type: application/json" --user <user:pass> -XGET http://localhost/test/_search -d '{
"query" : {
"bool" : {
"must" : [
{
"query_string" : {
"query" : "cafe"
}
}
]
}
},
"size" : 10,
"from" : 0
}'

但这和以前一样有效果:我只找到带有“cafe”的文章,而不是带有“café”的文章。我有什么想念的吗?

最佳答案

伟大的开始!您已经创建了新的分析器并更改了映射,但是,现在还需要重新索引数据以填充新的content.folded字段。

您可以通过这样调用update by query endpoint来轻松完成此操作:

curl --user <user:pass> -XPOST http://localhost/test/_update_by_query

关于elasticsearch - 查询Elasticsearch索引中是否带有重音的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59134758/

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