1. 程式人生 > >elasticsearch核心知識--38.Query DSL搜尋語法和bool多條件查詢

elasticsearch核心知識--38.Query DSL搜尋語法和bool多條件查詢

1、一個例子讓你明白什麼是Query DSL
GET /_search
{
    "query": {
        "match_all": {}
    }
}


2、Query DSL的基本語法
{
    QUERY_NAME: {
        ARGUMENT: VALUE,
        ARGUMENT: VALUE,...
    }
}


{
    QUERY_NAME: {
        FIELD_NAME: {
            ARGUMENT: VALUE,
            ARGUMENT: VALUE,...
        }
    }
}


示例:

GET /test_index/test_type/_search 
{
  "query": {
    "match": {
      "test_field": "test"
    }
  }
}


3、如何組合多個搜尋條件



搜尋需求:title必須包含elasticsearch,content可以包含elasticsearch也可以不包含,author_id必須不為111


{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 3,
    "max_score": 1,
    "hits": [
      {
        "_index": "website",
        "_type": "article",
        "_id": "2",
        "_score": 1,
        "_source": {
          "title": "my hadoop article",
          "content": "hadoop is very bad",
          "author_id": 111
        }
      },
      {
        "_index": "website",
        "_type": "article",
        "_id": "1",
        "_score": 1,
        "_source": {
          "title": "my elasticsearch article",
          "content": "es is very bad",
          "author_id": 110
        }
      },
      {
        "_index": "website",
        "_type": "article",
        "_id": "3",
        "_score": 1,
        "_source": {
          "title": "my elasticsearch article",
          "content": "es is very goods",
          "author_id": 111
        }
      }
    ]
  }
}


GET /website/article/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "title": "elasticsearch"
          }
        }
      ],
      "should": [
        {
          "match": {
            "content": "elasticsearch"
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "author_id": 111
          }
        }
      ]
    }
  }
}


GET /test_index/_search
{
    "query": {
            "bool": {
                "must": { "match":   { "name": "tom" }},
                "should": [
                    { "match":       { "hired": true }},
                    { "bool": {
                        "must":      { "match": { "personality": "good" }},
                        "must_not":  { "match": { "rude": true }}
                    }}
                ],
                "minimum_should_match": 1
            }
    }
}







相關推薦

elasticsearch核心知識--38.Query DSL搜尋語法bool條件查詢

1、一個例子讓你明白什麼是Query DSLGET /_search{    "query": {        "match_all": {}    }}2、Query DSL的基本語法{    QUERY_NAME: {        ARGUMENT: VALUE, 

ElasticSearch最佳入門實踐(四十七)query DSL搜尋語法

1、一個例子讓你明白什麼是Query DSL GET /_search { "query": { "match_all": {} } } 2、Query DSL的基本語

第十三篇 elasticsearchQuery DSL搜尋語法

Query DSL基本語法 { QUERY_NAME: { ARGUMENT: VALUE, ARGUMENT: VALUE,... } } { QUERY_NAME: { FIELD_

ES:Query DSL搜尋語法

1、Query DSL的基本語法 { QUERY_NAME: { ARGUMENT: VALUE, ARGUMENT: VALUE,... } } { QUERY_NAME: { FIELD_NAME: {

ElasticSearch36:初識搜尋引擎_快速上機動手實戰Query DSL搜尋語法

1.match allGET /website/article/_search { "query": { "match_all": {} } } 執行結果:{ "took": 38, "timed_out": false, "_shards":

elasticsearch核心知識--30.分頁搜尋以及deep paging效能問題深度理解es中聚合aggregation的分組可能結果不準確的原因

如何使用es進行分頁搜尋的語法  [size,from]GET /_search?size=10GET /_search?size=10&from=0GET /_search?size=10&from=20GET /test_index/test_type/_

elasticsearch核心知識--46.scroll技術滾動搜尋大量資料以及FromSize分頁的本質區別效能

scroll和formsize的區別以及效能比較   可以參考這篇文章  點選開啟連結分頁查詢時基於使用者檢視,scroll時基於批量查詢資料。效能方面 由於scroll時儲存著上一次查詢的快照,類似於查詢的索引位置,所以效能時比fromsize好第一部分:關於scroll搜

elasticsearch核心知識--42.搜尋條件組合查詢,sort以及explain的用法

分為三部分:第一部分  組合條件查詢GET /website/article/_search { "query": { "bool": { "must": [ { "match": { "ti

016-elasticsearch【五】-Query DSL【1】-查詢上下文,過濾上下文、match_all

earch 技術 其他 緩存 arc 匹配 子查詢 get 分享 一、概述 Elasticsearch提供基於JSON的完整查詢DSL來定義查詢。將Query DSL視為查詢的AST,由兩種類型的子句組成: 葉子查詢子句     葉子查詢子句在特定字段中查找特定值,例

elasticsearch核心知識--2. Elasticsearch的功能、適用場景以及特點介紹

1、Elasticsearch的功能,幹什麼的2、Elasticsearch的適用場景,能在什麼地方發揮作用3、Elasticsearch的特點,跟其他類似的東西不同的地方在哪裡-------------------------------------------------

elasticsearch核心知識---52.倒排索引組成結構以及實現TF-IDF演算法

首先實現了採用java 簡易的實現TF-IDF演算法package matrixOnto.Ja_9_10_va; import com.google.common.base.Preconditions; import org.nutz.lang.Strings; impo

elasticsearch核心知識---53.圖解剖析document寫入原理以及Segement的合併

圖解ES 寫入流程,分成三個部分,最終版本圖解才是最終版的ES的寫入流程。##################################第一部分#########################################Segment:lucene底層進行儲存時,

elasticsearch核心知識---49.ES中mapping root object _source _all _store _index關鍵字理解

關於_source  _all   _store  _index 這四個關鍵字  在這篇文章中非常詳細點選開啟連結1.root object就是某個type對應的mapping json,包括了properties,metadata(_id,_source,_type),se

elasticsearch核心知識--22.mget批量查詢api以及效能優化

批量查詢的好處就是一條一條的查詢,比如說要查詢100條資料,那麼就要傳送100次網路請求,這個開銷還是很大的如果進行批量查詢的話,查詢100條資料,就只要傳送1次網路請求,網路請求的效能開銷縮減100倍mget的語法(1)一條一條的查詢GET /test_index/test

elasticsearch核心知識--13.圖解Elasticsearch容錯機制:master選舉,replica容錯,資料恢復

1、圖解Elasticsearch容錯機制:master選舉,replica容錯,資料恢復(0)9 shard,3 node#########主要分為如下三步##########################################(1)master node宕機,

第8講 8.ElasticSearch組合條件查詢

1, 在elasticsearch-head 圖形化介面端,    模糊查詢標題含有“戰”的查詢(query,bool,must, 和match引數設定)。post 請求,_search引數,film索引下的dongzuo類,返回值有得分;  &nb

Elasticsearch - JAVA -API 條件查詢資料

只為記錄這個批量查詢方法 條件設定 searchSourceBuilder.query(QueryBuilders.boolQuery() .should(QueryBuilders.matchQuery("name", filter.getKeyWo

Elasticsearch Java API 的使用—條件查詢

//多條件設定 MatchPhraseQueryBuilder mpq1 = QueryBuilders .matchPhraseQuery("pointid","W3.UNIT1.10LBG01CP301"); MatchPhraseQue

SpringCloud學習筆記024---SpringBoot整合Lucene實現全文檢索_分詞_索引_更新_刪除文件_詞條搜尋_條件查詢

先看程式碼實現,下面有lucene介紹: 測試用例 Github 程式碼 程式碼我已放到 Github ,匯入spring-boot-lucene-demo 專案 新增依賴 <!--對分詞索引查詢解析--> <dependency>

Elasticsearch Java API 的使用(7)—條件查詢

多條件設定 //多條件設定 MatchPhraseQueryBuilder mpq1 = QueryBuilders .matchPhraseQuery("poin