엘라스틱서치로 검색기능을 구현해보자 빠른 검색속도와 폭넓은 원하는검색 결과를 보여주기위해 단순 RDB쿼리가 아닌 엘라스틱서치로 구현해봤다
- 내프로젝트 상 채팅내역을 검색해야하기때문에 ChatMessage로 Document 클래스를 만들어준다
- 필드 타입에 키워드면 해당 단어를 다입력해야 검색이가능하고 ex) “내일 밥을 먹는다” 라고하면 내일 밥을 먹는다 다입력을해줘야 검색이가능하다
- 타입이 텍스트면 엘라스틱서치에 “내일” “밥을” “먹느다” < 이런식을 띄어쓰기로 구분해 저장이 되기 때문에 “내일” 만 쳐도 검색이가능하다 그래서 content에 Text 타입을 붙혀줬다

chatService 쪽에서 저장한 채팅을 Document Entity객체로 변환해주고 그대로 DocumentRepository에 저장해버리면 된다 간단한듯


컨트롤러에서 검색 api를 만들어주자

SearchService

1. RDB에서 보자면 대략..
Select * from chat_message
where content LIKE ‘%내일%’
AND workspaceId = ‘32’
LIMIT 100;
이런느낌이겠죠?근데 엘라스틱서치가 더똑똑하게 동작하기때매 속도도빠르고 ..
화면.. nori 라는 한국어 형태소 분석기를 사용했기에 “언제하냐” 가아닌 “언제”만 쳐도 검색이된다.

키바나에서..
