将Mysql查询转换为Elastic Search
关于我之前的问题ElasticSearchQuery,其中给出了映射和doc示例,我想将此MySql查询转换为Elasticsearch。这是mysql查询
Select * from us_data where phone!=0 AND city_code IN ('Homestead','Hialeah','Key Biscayne','Miami Beach','Miami','North Miami Beach','Ochopee','Opa Locka') AND state_code='FL' AND (name like '%appliance%' or city_code like '%appliance%' or address like '%appliance%' or phone like '%appliance%')
期待您的帮助
-
以下查询将为您提供帮助。请注意,在映射
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" } } ] } } }
请注意,我已经在
keyword
字段上使用了Term Query / Terms Query,从sql-
query来看,您似乎需要完全匹配,而我已经multi-match
在text
字段上使用了。让我知道是否有帮助!