嗨,我已经在elasticsearch for claimnumber字段中创建了一个Map,当我使用term query搜索术语时,它可以很好地用于充满数字的文本,但不适用于字母和数字的文本组合,例如,适用于“123456”,不适用于“cl123456”
下面的Map
{
"duckcreek" : {
"mappings" : {
"properties" : {
"@timestamp" : {
"type" : "date"
},
"@version" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"claimnumber" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"id" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"policynumber" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"url" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
为数字工作
GET duckcreek/_search
{
"query": {
"term": {
"claimnumber": {
"value": "99520"
}
}
}
}
不使用数字文本
GET duckcreek/_search
{
"query": {
"term": {
"claimnumber": {
"value": "CL123456"
}
}
}
}
请提出解决方案?
1条答案
按热度按时间fnx2tebb1#
在使用analyze api对文本字符串执行分析时
生成的令牌是:
搜索查询
搜索结果