제이슨의 개발이야기
초보 알고리아(algolia) 검색 엔진 API 사용해보기!! 파이어베이스 검색기능 알고리아로?? with 코틀린 본문
※ 급하게 블로그 작성을 하다보니 내용이 부실하거나 내용이 이해가 잘 안될 수 있습니다 빠른 시일내에 좀 더 퀄리티 있게. 수정해보겠습니다 ㅠㅠ
안녕하세요 ! 오늘은 알고리아(algolia)에 대해서 공부하고자 합니다 !
일단 첫번째로 알고리아 가 무엇일까?
Algolia는 호스팅 된 검색 엔진으로, 첫 번째 키 입력에서 실시간 결과를 제공 할 수있는 전체 텍스트, 숫자 및 패싯 검색을 제공합니다. Algolia의 강력한 API를 사용하면 웹 사이트와 모바일 애플리케이션 내에서 빠르고 원활하게 검색을 구현할 수 있습니다. Google 검색 API는 매달 수천 개의 회사에 대해 수십억 개의 쿼리를 지원하여 전 세계 어디에서나 100ms 이내에 관련 결과를 제공합니다.
출처 ->www.algolia.com/doc/
Algolia Docs
Algolia: across 15 languages, read up on Algolia concepts, get access to tutorials with concrete use-cases and sample datasets, or explore our API Reference.
www.algolia.com
자체적으로 서버가 존재하는 경우에는 알고리아(Algolia) 를 굳이 사용하지 않아도 검색기능을 구현할 수 있습니다
그러나 자신의 프로젝트가 파이어베이스(Firebase) 일 경우 나 NoSql의 데이터베이스 일 경우 등등은 검색 구현하기 어려운 경우가 생깁니다 그럴때 알고리아 를 이용하면 쉽게 검색 기능을 구현할 수 있습니다
아쉽게도 요번 블로그 내용은 파이어베이스 와 알고리아 를 이용해서 검색기능 구현이 아닌 단순히 알고리아 에 있는 데이터를 검색하는 수준으로만 작성하겠습니다 !
위에 이미지는 알고리아 공식 홈페이지 화면입니다 ! 여기서 Start buildding for free today 버튼을 눌러서 가입 진행 하시면 됩니다 !
회원가입을 완료하면 알고리아가 몇가지 설정하라는 페이지가 나오고 거기에 맞게 세팅하시면 됩니다
그리고 나면 알고리아 콘솔창이 나오게 됩니다 !
여기서 잠깐 꼭 알아야 할 용어가 있습니다
알고리아에서 index 는 관계형 데이터 베이스 에서는 table 이라고 생각하시면 쉽습니다 ! 파이어베이스 기준으로 한다면 컬랙션? 이라고 이해하면 쉬울거 같습니다 ! ( 해당 설명은 순수히 제가 생각하는 쉽게 이해하기 위한 설명이고 index 가 table , 컬랙션과 완전 동일 하지 않습니다!) 그리고 record 는 index안에 있는 데이터 라고 생각하면 쉽습니다 파이어베이스 에서는 도큐먼트(document) !
모든 세팅을 완료했으면 테스트 해봅시다 !
참고로 저는 안드로이드 스튜디오 환경에서 진행했으며 다른 세팅 환경에서는 방법이 조금 다를 수 있습니다
일단 세팅으로 build.gradle() 에
dependencies 에 implementation 'com.algolia:algoliasearch-android:3.+' 를 추가해주시고 sync 를 눌러주세요!
검색기능 이 필요로 한 클래스에서 해당 인스턴스를 만듭니다
여기서 자신의 ApplicationID 와 apiKey 를 넣어야합니다 !
자신의 ApplicationID 와 apiKey를 아는 방법은 콘솔창에서
콘솔창 좌측에서 API Keys 에 들어가면 아이디 와 키 값을 알 수 있습니다 !
그리고 나서 아이디와 키 값을 Client 생성자에 넣어줍니다 !
그리고 나서 index 인스턴스를 만들어 주는 대 아직 알고리아에 index를 만들지 않았을 경우(최초 생성일 경우)
client.initIndex("인덱스명") 하면 새로운 인덱스가 알고리아에 생깁니다
아래의 이미지를 보면 initIndex 메소드가 deprecated 되어있습니다
아직 알고리아 공식 문서에서는 initIndex 를 사용하라고 적혀 있어서 저는 그냥 사용했고 조만간 알고리아 공식문서에서도
거기에 맞는 새로운 업데이트가 될거 같습니다 ! initIndex가 아닌 다른 걸 사용해도 된다고 하면 다른걸 사용하시기 바랍니다
deprecated 된 메소드는 기본적으로 사용하지 않는 것을 알고리아 뿐만 아니라 다른 개발할때 추천합니다
그리고 나서 index를 이용해서 원하는 데이터를 넣을 수 있습니다 !
알고리아에 데이터를 넣을때는 JSON 형식으로 넣어야 합니다 !
이렇게 하고 실행하면 알고리아에 데이터가 제대로 들어간것을 확인할 수 있습니다 !!
확인하는 방법은 overview에 들어가서 하단에 보면 자신이 만든 인덱스를 찾을 수 있고 들어가면 확인 할 수 있습니다!
이제 데이터를 넣었으니 제일 중요한 것!! 검색은 어떻게 할 까??
정말정말 간단합니다
먼저 검색 결과가 나올 시 처리해주는 핸들러(Handler)를 먼저 정의 하고
index.searchAsync(Query("j"),completionHandler)
하면 됩니다!
여기서 Query("j") 는 Query("검색내용") 이고 j로 시작하는 데이터를 검색하는 것을 의미합니다 !!
핸들러 에 println(content) 라고 했는데 이것은 검색 결과를 println 으로 보여주겠다 란 의미입니다!!
검색은 클라이언트와 알고리아와의 통신을 통해서 원하는 검색결과를 얻는 것입니다
그리고 그 통신은 JSON 형식으로 통신을 합니다 그래서 우리가 받는 검색 결과도 JSON 으로 받습니다
그래서 받은 결과를 개발자가 가공하고 싶은 경우 JSON 으로 온 data를 추출? 해야하는 작업이 필요한대
일단 여기서는 생략하겠습니다!
혹시나도 궁금하거나 필요로 하시분들은 댓글에 달아주시면 알려드리겠습니다!!
'안드로이드' 카테고리의 다른 글
안드로이드 앨범 접근 권환 확인 및 이미지 피커 안드로이드 사진첩 (0) | 2021.05.01 |
---|---|
[안드로이드] LiveData Component 예제코드(feat MVVM,Recycler View) (0) | 2021.04.27 |
[안드로이드 코틀린] 코루틴을 이용해서 파이어베이스 동기 처리하기! (0) | 2021.04.15 |
[안드로이드 코틀린] 뒤로가기 버튼 막기 AND 뒤로가기버튼 2번입력하면 앱 종료 (Activity , Fragment) (0) | 2021.04.14 |
안드로이드 Material Design이란? 안드로이드 디자인 라이브러리 (0) | 2021.04.13 |