ElasticSearch中的簡單查詢

丶Pz發表於2016-11-22

前言

  最近修改專案,又看了下ElasticSearch中的搜尋,所以簡單整理一下其中的查詢語句等。都是比較基礎的。PS,好久沒寫部落格了。。大概就是因為懶吧。閒言少敘書歸正傳。

查詢示例 http://*.*.*.*:9200/dbname/table/

  1. 最簡單粗暴的查詢  
    1. {
        "query": {
          "match_all": {}
        }
      }
  2. 簡單的主鍵或者某一個條件查詢
    1. {
        "query": {
          "term": {
            "artid": 1479282922430
          }
        }
      }
  3. filter,bool查詢(可以進行條件聯合查詢,and,or等),
    1. {
        "query": {
          "filtered": {
            "filter": {
              "bool": {
                "should": {
                  "term": {
                    "pid": 6267
                  }
                }
              }
            }
          }
        }
      }
      {
        "query": {
          "filtered": {
            "filter": {
              "bool": {
                "should": {
                  "and": [
                    {
                      "term": {
                        "pid": 6267     //兩個條件  一個是   pid=6267 and  privacy=1
                      }
                    },
                    {
                      "term": {
                        "privacy": 1
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    ids 查詢  id in (1,2,3,4,5,6),此查詢可以聯合bool 查詢
    1. {
        "query": {
          "ids": {
            "values": [ 1,2,3,4,5,6 ]
          }
        }
      }
  4. 一個綜合示例。 包含分頁,排序,and條件查詢,關鍵字查詢
    1. {
        "query": {
          "filtered": {
            "filter": {
              "bool": {
                "should": [
                  {
                    "and": [
                      {
                        "term": {
                          "showpublic": 1
                        }
                      },
                      {
                        "term": {
                          "privacy": "1"
                        }
                      },
                      {
                        "or": [   //此處為匹配兩個欄位的關鍵字,符合其中一個就可以,用 or
                          {
                            "query": {
                              "match_phrase": {
                                "title": {
                                  "query": "關鍵字",
                                  "slop": 1
                                }
                              }
                            }
                          },
                          {
                            "query": {
                              "match_phrase": {
                                "name": {
                                  "query": "關鍵字",
                                  "slop": 1
                                }
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            }
          }
        },
        "from": 0,
        "size": 20,
        "sort": [
          {
            "ordertime": {
              "order": "desc"
            }
          },
          {
            "artid": {
              "order": "desc"
            }
          }
        ]
      }

      就寫這麼多吧。Over。

 

相關文章