要不要再翻翻文档呢?

5.4查找准确值问题

Elasticsearch | 作者 jnuc093 | 发布于2017年06月09日 | 阅读数:2819

 
已邀请:

kennywu76 - Wood

赞同来自: jnuc093

做精确匹配的话,原始数据不能配置成text类型,否则象“37|100”这样的数据经过分词器处理后,变成37 和100两个term索引起来,搜索100的时候也会被匹配上。 可以将字段类型改为keyword,这样term query做的就是完全精确匹配。  

jnuc093

赞同来自:

感谢楼上 @kennywu76的回答
 
//创建索引
PUT equipment
{
"mappings": {
"unit": {
"properties": {
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"pid": {
"type": "keyword",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
我以这样的格式定义PID的类型 满足了 WHERE PID=100D 功能。

要回复问题请先登录注册