인프런 커뮤니티 질문&답변

오지윤님의 프로필 이미지

작성한 질문수

실전! Django 활용

상품 주문(Order)

pg_bigm으로 product의 name필드로 상품 검색

해결된 질문

작성

·

103

0

안녕하세요, 강의 아주 재밌게 듣고 있습니다! 정말 필요한 강의 제공해주셔서 감사드립니다.

 

이번에 상품 검색 - 한글 full-text search를 듣고 궁금한게 생겨 질문 남깁니다.

이전 강의에서는 tags에 영문 데이터를 추가하여, search_vector과 역인덱스를 생성하여 상품을 검색했을때는 tags가 변경되었을 때, search_vector과 역인덱스도 수정해주는 코드를 마이그레이션에 추가하셨는데요.

 

name에는 따로 그런 코드를 작성하지 않아서, name도 수정될 때 역인덱스가 수정되는지 궁금합니다.

답변 1

0

신동현님의 프로필 이미지
신동현
지식공유자

안녕하세요! 재밌고 듣고 계신다니 기쁘네요 😀.

맞습니다. pg_bigm 사용시에는 별도의 trigger를 생성하지 않아도 자동으로 index에 반영됩니다.

오지윤님의 프로필 이미지
오지윤
질문자

오 그렇군요. 감사합니다 !!
혹시 이런 내용은 pg_bigm 공식문서에 나와있을까요?? 이 강의를 듣지 않고 제가 실무에서 구현한다고 생각했을 때, 영문 데이터에서는 trigger을 생성해야 하고, 한글 데이터는 trigger을 생성하지 않아도 되는건데.. 이런 지식을 제가 개발할 때 어떻게 알 수 있을까 해서 추가 질문 드립니다..!ㅎㅎ

신동현님의 프로필 이미지
신동현
지식공유자

일반적으로 index 생성시에 별도의 trigger를 호출할 필요가 없는데요. tsvector 사용을 위해서 trigger를 만들어주는게 예외적인 경우라고 이해해주시면 될 것 같습니다.

 

postgresql 공식 문서에 tsvector_update_trigger에 대한 내용은 아래 링크에서 확인하실 수 있습니다.

https://www.postgresql.org/docs/current/textsearch-features.html

오지윤님의 프로필 이미지
오지윤
질문자

아 tsvector 사용을 위해서 trigger를 생성하는게 예외적인 케이스인거군요. 참고 문서 감사합니다!!!👍🏻