elasticsearch(4) 쿼리 DSL

10250 단어 elasticsearch

전체 검색

GET /index/type/_search
{
  "query": {
    "match_all": {}
  }
}

예:
GET /ecommerce/product/_search
{
  "query": {
    "match_all": {}
  }
}

페이지별 검색

GET /index/type/_search
{
  "query": {
    xxx
  },
  "from": 0,
  "size": 10
}

예:
GET /ecommerce/product/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 10
}

검색 반환 지정 필드

GET /ecommerce/product/_search
{
  "query": {
    xxx
  },
  "_source": ["key1","key2"]
}

예:
GET /ecommerce/product/_search
{
  "query": {
    "match_all": {}
  },
  "_source": ["name","price"]
}

필드 분사 검색 지정

GET /index/type/_search
{
  "query": {
    "match": {
      "key1": "value1"
    }
  }
}

예:
GET /ecommerce/product/_search
{
  "query": {
    "match": {
      "name": " "
    }
  }
}

질의 정렬

GET /index/type/_search
{
  "query": {
    xxx
  },
  "sort": [
    {
      "key1": {
        "order": "asc|desc"
      }
    }
  ]
}

예:
GET /ecommerce/product/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "price": {
        "order": "desc"
      }
    }
  ]
}

검색 필터


필터는 포인트 계산과 관련이 없기 때문에 필터의 효율은 일반 조회의 효율보다 높다.
예:
GET /ecommerce/product/_search
{
  "query": {
    "bool": {
      "must": {
        "match":{
          "name":" "
        }
      },
      "filter": {
        "range": {
          "price": {
            "gt": 10,
            "lte": 30
          }
        }
      }
    }
  }
}

조회phrase


match 전체 텍스트 검색과 반대로 전체 텍스트 검색은 검색 입력의 단어를 분해하여 역렬 색인에서 일일이 일치하도록 합니다. 역렬 색인에서 일치하는 단어가 있으면 결과로 되돌아갈 수 있습니다.
phrase는 검색 입력을 구분하지 않습니다. 지정한 필드 값에 검색 입력을 완전히 포함해야 검색 일치를 계산하고 결과로 되돌려줍니다.
예를 들어 match 전문 검색 모드에서 를 일치시킬 수 있다.phrase 모드에서는 일치 가 가능하지만 일치하지 않습니다 .
GET /ecommerce/product/_search
{
  "query": {
    "match_phrase": {
      "name": " "
    }
  }
}

질의 강조

GET /index/type/_search
{
  "query": {
    xxx
  },
  "highlight": {
    "fields": {
      "key1": {}
    }
  }
}

예:

requset

GET /ecommerce/product/_search
{
  "query": {
    "match": {
      "name": " "
    }
  },
  "highlight": {
    "fields": {
      "name": {}
    }
  }
}

response

{
  "took": 6,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 2,
    "max_score": 0.8630463,
    "hits": [
      {
        "_index": "ecommerce",
        "_type": "product",
        "_id": "2",
        "_score": 0.8630463,
        "_source": {
          "name": " ",
          "price": 20
        },
        "highlight": {
          "name": [
            "    "
          ]
        }
      },
      {
        "_index": "ecommerce",
        "_type": "product",
        "_id": "1",
        "_score": 0.2876821,
        "_source": {
          "name": " ",
          "price": 30
        },
        "highlight": {
          "name": [
            "   "
          ]
        }
      }
    ]
  }
}

좋은 웹페이지 즐겨찾기