You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RAW SQL이 아닌 ORM 으로 구현하였고 검색어 API호출은 디바운싱 기법을 사용해서 최소한의 요청만 보내려고 했다.
문제점
제목과 저자 를 검색하는건 문제없이 잘 찾지만, full-content에 있는 글귀는 검색성능이 떨어졌다, 한단어를 제대로 입력하거나 또한 인코딩/디코딩으로 검색결과가 전혀 언뚱한결과가 나왔다.
결과가 나오고 나서도 다시 랜더링이 트리거 되어서 결과값이 없어지는 이상한 상황이 발생했다.
또한 검색어 키워드의 길이 keyword.length로 의존성을 추가해준게 문제인것같다.
내가 생각하는 문제 발생 이유
first
우선 GET method에 파라미터를 넘겨주기위해서
{ params }: { params: { quote_id: string } }을 사용해서 넘겨받았는데 해당 방법이 작동은 하지만 좋은 방법이 아닌것같다 , 이렇게 되면 "/api/search-keyword/${keyword}로 보내야되는데 해당 키워드는 한글이여 %-enconded 로 넘어가기 때문에 좋은 방법은 아닌것 같다 .
second
디바운스 기법을 사용하면서 사용한 useCallback 에서 callback 함수인 getQuote 함수가 한번더 불러와져서 해당 리스트를 초기화 시키는것같다.
useCallback 의 의존성을 다른 변수로 바꿔주는 작업이 필요한것같다.
The text was updated successfully, but these errors were encountered:
당연히 검색어 2 가 더 많은 결과를 반환해야하지만, 검색어 1이 더 많은 결과를 반환하는걸 알았다. ... 검색기능이 많이 이상하다.
추가적으로 알게된것은 검색어에 띄어쓰기가 있으면 에러가 난다, 따라서 사람들이 하는 방법 으로 white space를 Regex 로해서 바꾸거나,
split(" ").join(" | ") == OR
split(" ").join(" & ") ==AND
같은 방법으로 바꾼다. 일단 Postgresql 에서는 Fulltext index 가 없어서 그렇다
상황
검색어 기능을 구현하기 위해서
https://www.prisma.io/docs/orm/prisma-client/queries/full-text-search 을 참고해서, title, author, full-content 로
GET 요청에 param로 넘겨준 키워드로 검색하는 기능을 만들었다.
RAW SQL이 아닌 ORM 으로 구현하였고 검색어 API호출은 디바운싱 기법을 사용해서 최소한의 요청만 보내려고 했다.
문제점
내가 생각하는 문제 발생 이유
first
우선 GET method에 파라미터를 넘겨주기위해서
{ params }: { params: { quote_id: string } }을 사용해서 넘겨받았는데 해당 방법이 작동은 하지만 좋은 방법이 아닌것같다 , 이렇게 되면 "/api/search-keyword/${keyword}로 보내야되는데 해당 키워드는 한글이여 %-enconded 로 넘어가기 때문에 좋은 방법은 아닌것 같다 .
second
디바운스 기법을 사용하면서 사용한 useCallback 에서 callback 함수인 getQuote 함수가 한번더 불러와져서 해당 리스트를 초기화 시키는것같다.
useCallback 의 의존성을 다른 변수로 바꿔주는 작업이 필요한것같다.
The text was updated successfully, but these errors were encountered: