Node/Node_Tip & 해결경험
MongoDB에서 text 검색 & index 설정
GROWNFRESH
2020. 10. 5. 20:49
MongoDB의 $text 텍스트 인덱스란?)
특정 string 검색어와 일치하는 필드 내용을 찾는다.
(인덱싱된 필드의 내용에 대해 텍스트 검색을 수행한다.)
$text 표현문 기본
{
$ text :
{
$ search : < string > ,
$ language : < string > ,
$ caseSensitive : < boolean > ,
$ diacriticSensitive : < boolean >
}
}
필드 | 타입 | 설명 |
$search | string | 검색에 사용하는 문자열 |
$language | string | (선택값) 불용어 목록 등을 설정함. |
$caseSensitive | boolean | (선택값) 대소문자 구분을 활성화 - default : false ( 구분 x ) |
$diacriticSensitive | boolean | (선택값) 발음부호 구분 활성화 - default : false |
docs.mongodb.com/manual/reference/operator/query/text/#text-query-operator-behavior
이때, db.collection에 <index 메소드>로 <text index>를 설정해 주어야
$text 표현문으로 검색할 수 있다!!
다음을 보자.
productSchema.index({
title:'text',
description:'text'
})
검색했을 때 검색어와, 검색 모델(collection)의 어떤 필드와 매칭시키고 싶은가??
제품의 '제목' 필드에서 찾고 싶은가? '설명' 필드에서 찾고 싶은가?
검색어로 찾고 싶은 필드에 'text'로 indexing 해준다!
++ 검색 가중치
제목과 설명 중 제목에 더 검색결과의 가중치를 두고 싶다면???
productSchema.index({
title:'text',
description:'text'
},{
weights:{
title:10,
description:5
}
})
docs.mongodb.com/manual/tutorial/control-results-of-text-search/