当前我的opensearch数据库中有一个值为1301-003.023
的文档。如果运行以下查询,将返回该文档:
GET test/example
{
"query": {
"match": {
"my_number": "1301-003.023"
}
}
}
主要问题是如果用户运行该查询:
GET test/example
{
"query": {
"match": {
"my_number": "1301003.023"
}
}
}
在上面的查询中,符号-
丢失了,它将不会返回任何结果。我需要创建一个搜索,它可以处理这个问题,但不会返回具有不完全相同编号的文档。因此,如果我搜索1301003023
,我希望找到具有1301-003.023
的文档,但我不搜索具有1301-003.032
的文档(请注意,最后两个编号交换了)
1条答案
按热度按时间zpqajqem1#
我创建了一个新的分析器,使用字符过滤器将符号"."和"-"Map为空,因此,数字"1301 - 003.023"变成了标记"1301003023"。
完整示例:
文件
质询
结果