在Elasticsearch中查询字段的确切值的最佳方法是什么?例如,我有:
profile: {
email: "test@email.com"
}
如何查看个人资料中是否有完全相同的test@email.com
电子邮件?
答案 0 :(得分:1)
无论何时需要精确搜索,都可以将该字段的数据类型定义为keyword
。如果您需要在同一字段上同时进行部分搜索(分析)和精确搜索,则可以为该字段定义一个子字段,并在需要精确搜索时引用该子字段。
因此字段定义如下:
{
"query": {
"term": {
"email.keyword": "test@email.com"
}
}
}
然后您可以使用term query进行精确搜索。
keyword
注意:将类型定义为xy_coords
会导致区分大小写的精确搜索。