查询 Elastic Search 时没有匹配项
No matches when querying Elastic Search
我正在尝试 运行 查询弹性搜索。当运行这个查询
GET accounts/_search/
{
"query": {
"term": {
"address_line_1": "1000"
}
}
}
我得到了多条记录,例如
"hits" : [
{
"_index" : "accounts",
"_type" : "_doc",
"_id" : "...",
"_score" : 8.355149,
"_source" : {
"state_id" : 35,
"first_name" : "...",
"last_name" : "...",
"middle_name" : "P",
"dob" : "...",
"status" : "ACTIVE",
"address_line_1" : "1000 BROADROCK CT",
"address_line_2" : "",
"address_city" : "PARMA",
"address_zip" : "",
"address_zip_plus_4" : ""
}
},
但是,当我尝试将其扩展为包括更多如下所示的内容时,我没有得到任何匹配项
GET accounts/_search/
{
"query": {
"term": {
"address_line_1": "1000 B"
}
}
}
响应是
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 0,
"relation" : "eq"
},
"max_score" : null,
"hits" : [ ]
}
}
term
查询正在寻找完全匹配。您的 address_line_*
字段很可能使用标准分析器编制了索引,其中 lowercase-s 所有字母反过来会阻止查询匹配。
所以要么使用
GET accounts/_search/
{
"query": {
"match": { <--
"address_line_1": "1000 B"
}
}
}
关于 B 是 lower/upper 大小写的 'care' 或调整您的 field analyzers 以保留大写。
我正在尝试 运行 查询弹性搜索。当运行这个查询
GET accounts/_search/
{
"query": {
"term": {
"address_line_1": "1000"
}
}
}
我得到了多条记录,例如
"hits" : [
{
"_index" : "accounts",
"_type" : "_doc",
"_id" : "...",
"_score" : 8.355149,
"_source" : {
"state_id" : 35,
"first_name" : "...",
"last_name" : "...",
"middle_name" : "P",
"dob" : "...",
"status" : "ACTIVE",
"address_line_1" : "1000 BROADROCK CT",
"address_line_2" : "",
"address_city" : "PARMA",
"address_zip" : "",
"address_zip_plus_4" : ""
}
},
但是,当我尝试将其扩展为包括更多如下所示的内容时,我没有得到任何匹配项
GET accounts/_search/
{
"query": {
"term": {
"address_line_1": "1000 B"
}
}
}
响应是
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 0,
"relation" : "eq"
},
"max_score" : null,
"hits" : [ ]
}
}
term
查询正在寻找完全匹配。您的 address_line_*
字段很可能使用标准分析器编制了索引,其中 lowercase-s 所有字母反过来会阻止查询匹配。
所以要么使用
GET accounts/_search/
{
"query": {
"match": { <--
"address_line_1": "1000 B"
}
}
}
关于 B 是 lower/upper 大小写的 'care' 或调整您的 field analyzers 以保留大写。