gpt4 book ai didi

elasticsearch - 使用Elasticsearch的整数的语音搜索结果

转载 作者:行者123 更新时间:2023-12-02 22:32:02 25 4
gpt4 key购买 nike

原谅我,因为我是Elasticsearch的新手,但我正在遵循此处找到的语音入门指南:Phonetic Matching

我有以下

POST /app
{
"settings": {
"index": {
"analysis": {
"filter": {
"dbl_metaphone": {
"type": "phonetic",
"encoder": "double_metaphone"
}
},
"analyzer": {
"dbl_metaphone": {
"tokenizer": "standard",
"filter": "dbl_metaphone"
}
}
}
}
},
"mappings": {
"movie": {
"properties": {
"title": {
"type": "string",
"fields": {
"phonetic": {
"type": "string",
"analyzer": "dbl_metaphone"
}
}
},
"year": {
"type": "string",
"fields": {
"phonetic": {
"type": "string",
"analyzer": "dbl_metaphone"
}
}
}
}
}
} }

我通过执行以下操作添加了一些结果:
POST /app/movie
{ "title": "300", "year": 2006"} & { "title":"500 days of summer", "year": "2009" }

我想通过输入以下查询来查询电影“300”:
POST /app/movie/_search
{
"query": {
"match": {
"title.phonetic": {
"query": "three hundred"
}
}
}
}

但我没有结果。如果将我的查询更改为“300”,尽管它工作正常。

如果我做:
GET /app/_analyze?analyzer=dbl_metaphone&text=300
{
"tokens": [
{
"token": "300",
"start_offset": 0,
"end_offset": 3,
"type": "<NUM>",
"position": 0
}
]
}

我看到只有一个数字 token 返回,而不是字母数字版本,例如:
GET /app/_analyze?analyzer=dbl_metaphone&text=three hundred
{
"tokens": [
{
"token": "0R",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "TR",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "HNTR",
"start_offset": 6,
"end_offset": 13,
"type": "<ALPHANUM>",
"position": 1
}
]
}

我应该定义为同时获取数字和字母数字标记的语音查询中缺少某些内容吗?

最佳答案

这是不可能的。 Double Metaphone是一种语音编码算法。
简而言之,它尝试将发音相似的单词编码为相同的键。

这有助于搜索诸如名称之类的术语,这些术语的拼写可能不同,但听起来却一样。

从算法中可以看到double metaphone忽略数字/数字字符。
您可以阅读有关双元音电话here的更多信息。

关于elasticsearch - 使用Elasticsearch的整数的语音搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275900/

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