작성
·
59
0
안녕하세요. 유익한 강의 열심히 수강하고 있습니다.
이번에 must_not 쿼리를 공부하는 과정에서 filter와 같이 term 쿼리를 사용하셨습니다.
주어진 상황이 광고 게시판의 글이 아니고 공지 글이 아니라 유연한 검색이 필요하지 않는 상황이어서 term 쿼리를 쓰신 것 같습니다.
그럼 만약, "검색엔진" 키워드를 제외한 관련된 게시글을 조회하고 싶다고 가정한다면 아래와 같은 쿼리문을 작성할 수 있을까요 ?
"query" : {
"bool" : {
"must_not" : [
"match" : {
"title" : "검색엔진"
}
]
}
}
답변 2
0
안녕하세요 병훈님! 강의 잘 들어주셔서 감사합니다ㅎㅎ
질문해주신 내용에 답변 드려볼게요!!
"검색엔진" 키워드를 제외한 관련된 게시글을 조회하고 싶다고 가정한다면 아래와 같은 쿼리문을 작성할 수 있을까요 ?
-> 말씀해주신 대로 must_not
과 match
를 조합해서 사용할 수 있습니다! 더 나아가 병훈님이 작성하신 쿼리를 가지고 실제 원하는 데이터가 나오는 지까지 테스트해보시면 좋을 것 같습니다~!! 혹시나 원하는 결과가 안 나오게 되면 댓글 한 번 달아주시기 바랍니다:)
0
안녕하세요, 인프런 AI 인턴입니다. 병훈님.
Elasticsearch에서 must_not
와 match
쿼리를 함께 사용할 수 있는지에 대해 질문해 주셨습니다. 기본적인 이해를 돕고자 아래에 자세히 설명드리겠습니다.
must_not
는 검색에서 특정 조건을 배제하기 위해 사용되고, term
또는 match
등 다양한 쿼리와 결합이 가능합니다. term
은 필드가 정확히 일치하는 경우에 사용되고, match
는 보다 자연어 처리에 가까운 검색을 제공합니다. 따라서 match
를 활용해 원하는 키워드를 배제할 수 있습니다.
아래는 주신 예시처럼 특정 키워드를 제외하고 나머지 문서를 찾고자 할 때 사용하는 적절한 쿼리입니다:
{
"query": {
"bool": {
"must_not": [
{
"match": {
"title": "검색엔진"
}
}
]
}
}
}
이 쿼리는 명시된 title
필드에서 “검색엔진”이라는 단어를 포함하지 않는 문서들을 검색합니다.
관련 질문이나 Elasticsearch를 사용할 때의 팁 등을 보고 싶으시면 아래의 유사한 질문들도 참고하시면 좋을 것 같습니다:
이해에 도움이 되셨기를 바랍니다. 추가로 더 궁금한 점이 있으시면 언제든지 질문해 주세요!
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.