下面的查询是获取结果,如果我给现有记录很好,但是如果我将名字字段从“John”更改为“John1”,那么仍然记录正在获取。
{
"query" : {
"bool" : {
"must" : [
{ "match" : {"employeeId" : "1234"}},
{ "match" : {"name" : "John"}}
]
}
}
}
我尝试了另一个替代查询,但仍然给出了result.which查询在性能方面是否正确?但如果我将名称记录从'John'更改为'John1'
,两者都会给出结果{
"filter": {
"bool" : {
"must" : {
"term" : {
"employeeId" : "1234"
}
}
}
},
"query": {
"match" : {
"name" : {
"query" : "John",
"type" : "phrase"
}
}
}
}
答案 0 :(得分:0)
这是因为您正在进行匹配,如果您想进行精确搜索,则需要使用过滤器 请注意,我们假设分析名称列的映射
{
"query" :{
"filtered" : {
"filter" : {
"bool" : {
"must" : [
{ "term" : {"employeeId" : "1234"}},
{ "term" : {"name" : "john"}}
]
}
}
}
}
}