2. Elasticsearch 6가지 검색 방식
29147 단어 Elasticsearch
query string search
GET /index/type/_search
모든 상품을 조회하다
GET /ecommerce/product/_search
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 3,
"relation": "eq"
},
"max_score": 1,
"hits": [
{
"_index": "ecommerce",
"_type": "product",
"_id": "1",
"_score": 1,
"_source": {
"name": "gaolujie yagao",
"desc": "gaoxiao meibai",
"price": 30,
"producer": "gaolujie producer",
"tags": [
"meibai",
"fangzhu"
]
}
}
...
]
}
}
조건 조회 정렬
상품 명칭에 포함된
yagao
상품을 조회하고 판매 가격의 하락 순서에 따라 정렬하다GET /ecommerce/product/_search?q=name:yagao&sort=price:desc
query DSL [일반]
Domain Specified Language: 특정 영역의 언어
GET /index/type/_search
{
"query": {
"match_all": {}
}
}
요청체는
request body
안에 넣고 json 형식으로 각종 복잡한 문법을 구축할 수 있으며 query string search
보다 강하다모든 상품 조회
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
}
}
조건 조회 정렬
상품 명칭에 포함된
yagao
상품을 조회하고 판매 가격의 하락 순서에 따라 정렬하다GET /ecommerce/product/_search
{
"query": {
"match": {
"name": "yagao"
}
},
"sort": [
{
"price": "desc"
}
]
}
페이지별 조회
현재 총 3개의 상품 데이터, 매 페이지에 1개, 현재 2페이지를 표시한다고 가정하면 두 번째 상품만 찾아낸다
GET /ecommerce/product/_search
{
"query":{
"match_all": {}
},
"from": 1,
"size": 1
}
질의 지정 속성
상품만name,price 속성을 지정합니다
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"_source": [
"name",
"price"
]
}
query filter
범위 조회
검색 상품 명칭에는 야오가오가 포함되어 있으며, 판매 가격이 25위안 이상인 상품이 포함되어 있다
GET /ecommerce/product/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "yagao"
}
}
],
"filter": {
"range": {
"price": {
"gt": 25
}
}
}
}
}
}
full-text search
전체 텍스트 검색 - 입력한
을 분해하여 색인을 거꾸로 배열하여 일치하게 합니다. 임의의 분해된 단어만 일치하면 결과로 되돌아갈 수 있습니다.PUT /ecommerce/product/4
{
"name": "special yagao",
"desc": "special meibai",
"price": 50,
"producer": "special yagao producer",
"tag": [
"meibai"
]
}
GET /ecommerce/product/_search
{
"query":{
"match": {
"producer":"yagao producer"
}
}
}
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 4,
"relation": "eq"
},
"max_score": 1.2825179,
"hits": [
{
"_index": "ecommerce",
"_type": "product",
"_id": "4",
"_score": 1.2825179,
"_source": {
"name": "special yagao",
"desc": "special meibai",
"price": 50,
"producer": "special yagao producer",
"tag": [
"meibai"
]
}
},
{
"_index": "ecommerce",
"_type": "product",
"_id": "3",
"_score": 0.09037233,
"_source": {
"name": "zhonghua yagao",
"desc": "caoben zhiwu",
"price": 40,
"producer": "zhonghua producer",
"tags": [
"qingxin",
"fangzhu"
]
}
},
{
"_index": "ecommerce",
"_type": "product",
"_id": "2",
"_score": 0.09037233,
"_source": {
"name": "jiajieshi yagao",
"desc": "youxiao fangzhu",
"price": 25,
"producer": "jiajieshi producer",
"tags": [
"fangzhu"
]
}
},
{
"_index": "ecommerce",
"_type": "product",
"_id": "1",
"_score": 0.09037233,
"_source": {
"name": "gaolujie yagao",
"desc": "gaoxiao meibai",
"price": 30,
"producer": "gaolujie producer",
"tags": [
"name"
]
}
}
]
}
}
yagao producer
이 조회 조건일 때 yagao
, producer
두 개의 조회 조건으로 분할되지만, 조회 결과의 _score
는 원시 조회 조건과 일치도를 나타낸다phrase search
구문 검색 - 전체 텍스트 검색과 반대로 검색
은 지정된 필드 텍스트와 일치해야 합니다.GET /ecommerce/product/_search
{
"query": {
"match_phrase": {
"producer": "yagao producer"
}
}
}
highlight search
강조 검색 - 일치하는 키워드가 검색 결과에 강조 표시됩니다. (기본값)
GET /ecommerce/product/_search
{
"query": {
"match": {
"producer": "producer"
}
},
"highlight": {
"fields": {
"producer": {}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embulk를 사용하여 ElasticCloud로 보내기Embulk에서 ElasticCloud에 보낼 수 있을까라고 생각비망록도 겸해 기술을 남깁니다 Embulk 설치 ElasticCloud (14 일 체험판) brew라면 아래 명령 입력 파일 만들기 파일 내용 seed...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.