프로그래밍/spring
웹 에디터 사용시 키워드(제목, 내용) 검색 방법
승민아
2024. 9. 5. 13:52
게시글 검색 기능에 "img" 키워드로 검색을하자
성공적으로 게시글 조회가 잘 되지만.
해당 게시글의 내용이나 제목에는 "img" 키워드를 포함하지 않는다.
문제 원인은 웹 에디터의 게시글의 내용을 태그와 함께 모든 정보를 DB에 저장하는데
이것을 LIKE 연산자로 키워드 검색을 했기 때문이다.
DB에 저장된 해당 게시글의 내용에는 <img> 태그를 포함하고 있기 때문에 검색이 된것이다.
위와 같이 순수 텍스트 내용만 담을 pure_content 컬럼을 추가해서
태그 내용은 제외하고 저장하자.
웹 에디터 내용을 어떻게 파싱해서 순수 텍스트만 저장할까싶은데
라이브러리를 사용하자.
자바에서 사용하는 Jsoup 라이브러리를 이용해 html을 파싱할 수 있다.
현재 나의 환경은 gradle이다. gradle의 경우 build.gradle에 다음 라인을 추가하자.
// Jsoup
implementation 'org.jsoup:jsoup:1.18.1'
사용법은 다음과 같다.
System.out.println("[content]\n" + poster.getContent());
Document parse = Jsoup.parse(poster.getContent());
System.out.println("[pure_content]\n" + parse.text());
다음과 같은 다양한 태그가 섞인 게시글의 내용이 있지만
태그들을 파싱해서 순수 텍스트만 가져올 수 있다.
이 순수 텍스트를 가지는 pure_content 칼럼을 이용해서 키워드 검색에 사용하거나
게시글 내용 미리보기에 태그들을 제거하여 미리보기 기능도 제공할 수 있다.