[Nextcloud/android] 검색이슈 pt.1: 검색 기능 개선 이슈 등록 (Issue #7325)

Nextcloud 앱을 사용하고 있던 중 파일 검색을 하는 데 검색에 실패했다,,,

분명 파일명에 있는 단어들을 검색한 것인데 검색 결과 없음이 나왔다.😳
파일명에 적힌 순서 흐름(?)대로 검색하지 않으면 원하는 파일은 검색되지 않는 것 같다.

만약 내가 '20201113 issue test image.jpg' 파일을 찾으려고 한다.

파일명 순서 그대로 'issue test'를 검색하면 원하는 결과가 나온다.
('20201113 issue', 'issue test image' 등... 도 같은 결과가 나온다.)

[검색 성공]파일명 순서 흐름대로 검색

그러나 파일명 순서 흐름대로가 아닌 'issue image'를 검색하면 원하는 결과가 나오지않는다.
('20201113 test', '20201113 image', 'te ' 등... 도 같은 결과가 나온다.)

[검색 실패]파일명 순서 흐름대로가 아닌 중간 단어 생략 후 검색


클라우드에서 검색 기능은 매우 중요하다고 생각한다.
파일이 많이 저장된 사용자가 찾고자 하는 파일명을 순서대로 기억하고 있지 않다면? 그 경우 Nextcloud에서 파일을 찾기 어려울지도 모른다.😭😭

그래서 이 이슈를 해결하고 싶었다. 서버로 보내는 쿼리문을 수정하면 되지 않을 까,,,? 
그리고 데이터베이스 전공 수업에서 배운 부분검색을 위한 Like절과 '%'기호가 생각났다.
코드를 찾아보기 위해 안드로이드 스튜디오를 실행시켰고, 기다리면서 애뮬레이터에 '%'기호를 넣어 검색을 해보았다. 

그런데,,, 검색에 성공했다,,,!!!!!!!!!!! 😲😲😲 의도한게 아닌데 검색이 되어 정말 놀랐다.

[검색 성공]파일명 순서 흐름대로가 아닌 중간 단어 생략 후 검색 + 공백대신 '%'기호 사용

사용자가 검색어를 입력하면 공백란을 '%'기호로 대체하여 서버로 보내는 방법을 생각했다.

SearchEvent 클래스의 함수 getSearchQuery가 쿼리문을 반환하기 전에 공백란을 '%'기호로 대체한 후 반환하도록 하였다.

Before
1
2
3
public String getSearchQuery() {
        return this.searchQuery;
    }
cs

After
1
2
3
public String getSearchQuery() {
        return this.searchQuery.replace(" ","%");
    }
cs

수정한 코드를 빌드한 후 실행시켜 보니 파일명 순서 흐름대로 검색하지 않아도 원하는 파일을 검색할 수 있다.
[검색 성공]파일명 순서 흐름대로가 아닌 중간 단어 생략 후 검색 + 공백대신 '%'기호로 대체하도록 코드 수정


검색 기능을 개선할 수 있는 방법을 이슈화 시켰다. #7325  

+ 이슈 등록전에 멘토님께 먼저 보여드리고 내용에 대한 첨삭 피드백을 받았다.




Android version: 5
Device model: Samsung Galaxy S9
Nextcloud app version: 3.13.1


una.kwon Github: https://github.com/Kuuuna98
Nextcloud/android Github: https://github.com/nextcloud/android


댓글

이 블로그의 인기 게시물

[Nextcloud/android] 배터리 최적화 제외 여부 판단 오류 (Issue #7304)

[Nextcloud/android] passcode 화면에서 뒤로가기 이벤트 PR -> Merge

[Nextcloud/server, android] 개발 환경 구성