gpt4 book ai didi

elasticsearch - elasticsearch 匹配发音相同的单词

转载 作者:行者123 更新时间:2023-11-29 02:55:40 25 4
gpt4 key购买 nike

我想匹配拼写不同但发音相同的单词。像“男”和“男”,“平面”和“素”。我们可以在elasticsearch中做这样的匹配吗?

最佳答案

您可以使用 analysis phonetic plugin为了那个任务。

让我们利用该插件创建一个带有自定义分析器的索引:

curl -XPUT localhost:9200/phonetic -d '{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"standard",
"lowercase",
"my_metaphone"
]
}
},
"filter": {
"my_metaphone": {
"type": "phonetic",
"encoder": "metaphone",
"replace": true
}
}
}
}
}'

现在让我们使用新的分析器来分析您的示例。如您所见,plainplane 都将生成单个 token PLN:

curl -XGET 'localhost:9200/phonetic/_analyze?analyzer=my_analyzer&pretty' -d 'plane'
curl -XGET 'localhost:9200/phonetic/_analyze?analyzer=my_analyzer&pretty' -d 'plain'

{
"tokens" : [ {
"token" : "PLN",
"start_offset" : 0,
"end_offset" : 5,
"type" : "<ALPHANUM>",
"position" : 1
} ]
}

对于 mailmale 也是一样,它们生成单个标记 ML:

curl -XGET 'localhost:9200/phonetic/_analyze?analyzer=my_analyzer&pretty' -d 'mail'
curl -XGET 'localhost:9200/phonetic/_analyze?analyzer=my_analyzer&pretty' -d 'male'

{
"tokens" : [ {
"token" : "ML",
"start_offset" : 0,
"end_offset" : 4,
"type" : "<ALPHANUM>",
"position" : 1
} ]
}

我使用了metaphone 编码器,但您可以自由使用任何其他受支持的编码器。您可以找到有关所有支持的编码器的更多信息:

  • Apache Codec documentation对于 metaphonedouble_metaphonesoundexcaverphonecaverphone1caverphone2 , refined_soundex, 古龙香水, beider_morse
  • additional encoders对于 koelnerphonetikhaasephonetiknysiis

关于elasticsearch - elasticsearch 匹配发音相同的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35145108/

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