Search
moon
sun

특정 조건을 만족하지 않는 데이터를 조회하고 싶을 때

순서
10
날짜
2026/09/03
사람
상태
완료

must_not

// 기존 인덱스 삭제 DELETE /boards // 인덱스 생성 PUT /boards { "mappings": { "properties": { "board_id": { "type": "long" }, "title": { "type": "text", // 유연한 검색이 필요하므로 text 타입으로 선언 "analyzer": "nori" // 한글 데이터를 토큰으로 정확하게 나누기 위해 }, "category": { "type": "keyword" // 유연한 검색이 필요없으므로 keyword 타입으로 선언 }, "is_notice": { // (공지글 여부) "type": "boolean" }, "created_at": { "type": "date" } } } } // 데이터 삽입 POST /boards/_doc { "board_id": 1, "title": "엘라스틱서치는 정말 강력한 검색엔진이에요", "category": "자유 게시판", "is_notice": false, "created_at": "2025-05-01T12:00:00" } POST /boards/_doc { "board_id": 2, "title": "이벤트 참여 방법 안내드립니다", "category": "광고 게시판", "is_notice": false, "created_at": "2025-05-02T10:30:00" } POST /boards/_doc { "board_id": 3, "title": "익명으로 질문하고 답변 받을 수 있어요", "category": "익명 게시판", "is_notice": true, "created_at": "2025-05-03T08:20:00" }
JSON
복사
[검색 쿼리 사용해보기]
광고 게시판의 글이 아니면서, 공지 글이 아니면서, 검색엔진의 키워드와 관련된 게시글을 조회
// 방법 1 GET /boards/_search { "query": { "bool": { "must": [ { "match": { "title": "검색엔진" } } // 유연한 검색이 필요 (must) ], "filter": [ { "term": { "is_notice": false } } // 정확한 검색이 필요 (filter) ], "must_not": [ { "term": { "category": "광고 게시판" } } ] } } } // 방법 2 GET /boards/_search { "query": { "bool": { "must": [ { "match": { "title": "검색엔진" } } // 유연한 검색이 필요 (must) ], "must_not": [ { "term": { "category": "광고 게시판" } }, { "term": { "is_notice": true } } ] } } }
JSON
복사