쌓고 쌓다
웹 에디터 사용시 키워드(제목, 내용) 검색 방법 본문
게시글 검색 기능에 "img" 키워드로 검색을하자
성공적으로 게시글 조회가 잘 되지만.
해당 게시글의 내용이나 제목에는 "img" 키워드를 포함하지 않는다.
문제 원인은 웹 에디터의 게시글의 내용을 태그와 함께 모든 정보를 DB에 저장하는데
이것을 LIKE 연산자로 키워드 검색을 했기 때문이다.
DB에 저장된 해당 게시글의 내용에는 <img> 태그를 포함하고 있기 때문에 검색이 된것이다.
위와 같이 순수 텍스트 내용만 담을 pure_content 컬럼을 추가해서
태그 내용은 제외하고 저장하자.
웹 에디터 내용을 어떻게 파싱해서 순수 텍스트만 저장할까싶은데
라이브러리를 사용하자.
자바에서 사용하는 Jsoup 라이브러리를 이용해 html을 파싱할 수 있다.
Download and install jsoup
Download and install jsoup jsoup is available as a downloadable .jar java library. The current release version is 1.18.1. What's new See the 1.18.1 release announcement for the latest changes, or the changelog for the full history. Previous releases of jso
jsoup.org
현재 나의 환경은 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 칼럼을 이용해서 키워드 검색에 사용하거나
게시글 내용 미리보기에 태그들을 제거하여 미리보기 기능도 제공할 수 있다.
'프로그래밍 > spring' 카테고리의 다른 글
테스트 코드에서의 @Transactional (0) | 2024.09.24 |
---|---|
테스트 코드(Test code) 전용 데이터베이스(DB) 사용하기 (4) | 2024.09.11 |
CORS error 발생! 그게 뭔데? (0) | 2024.08.14 |
EC2와 도메인 연결하기 with Spring Security {baseUrl} (0) | 2024.08.11 |
웹 에디터에서 업로드된 이미지 파일 관리(+연관관계) 방법 (0) | 2024.08.03 |