Ниже запрос должен помочь вам. Обратите внимание, что в вашем отображении у вас есть contact_no
, а в приведенном выше запросе вы упомянули phone
.
Тем не менее, я использовал contact_no
, чтобы он соответствовал отображению.
POST <your_index_name>/_search
{
"query": {
"bool": {
"must": [
{
"terms": {
"city_code.keyword": [
"Homestead",
"Hialeah",
"Key Biscayne",
"Miami Beach",
"Miami",
"North Miami Beach",
"Ochopee",
"Opa Locka"
]
}
},
{
"term": {
"state_code.keyword": "FL"
}
},
{
"multi_match": {
"query": "*appliance*",
"fields": ["name","city_code","address","contact_no"]
}
}
],
"must_not": [
{
"term": {
"contact_no.keyword": "0"
}
}
]
}
}
}
Я использовал варианты Условия запроса , Запрос термина и Много совпадение .
Обратите внимание, что я использовал Term Query / Terms Query в полях keyword
, так как из запроса sql кажется, что вы хотите точное совпадение, в то время как я использовал multi-match
в text
полей.
Дайте мне знать, если это поможет!