mysql - 将Mysql查询转换为Elastic Search

标签 mysql elasticsearch

关于我之前的问题ElasticSearch Query,其中给出了映射和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"
          }
        }
      ]
    }
  }
}

我使用了Terms QueryTerm QueryMulti-Match查询的变体。

请注意,我已经在keyword字段上使用了Term Query / Terms Query,从sql查询中看来,您需要完全匹配,而我已经在multi-match字段上使用了text

让我知道这是否有帮助!

关于mysql - 将Mysql查询转换为Elastic Search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60773403/

相关文章:

mysql - 将 MYSQL 日期时间列转换为 JSON - SPRING BOOT

mysql - 在 RPI/优化查询上运行 MySQL

elasticsearch - Elasticsearch-如何在一个字符串中搜索多个单词

java - 使用 Java 在 Elasticsearch 中执行 Update By Query 时的 NPE

elasticsearch - 通过文本匹配和到一个点的距离对文档进行评分

elasticsearch - 如何为 elasticsearch 解析 ‘530 5.7.0 Must issue a STARTTLS command first. o63-v6sm4041934ywc.36 - gsmtp\n’?

java - OneToMany Hibernate 保存级联问题

java - SQL 仅插入特定列

maven - Elasticsearch ICU插件-找不到分析器

MYSQL auto_increment_增量