제이슨의 개발이야기

초보 알고리아(algolia) 검색 엔진 API 사용해보기!! 파이어베이스 검색기능 알고리아로?? with 코틀린 본문

안드로이드

초보 알고리아(algolia) 검색 엔진 API 사용해보기!! 파이어베이스 검색기능 알고리아로?? with 코틀린

제이쓰은 2021. 4. 22. 11:41
728x90
반응형

※ 급하게 블로그 작성을 하다보니 내용이 부실하거나 내용이 이해가 잘 안될 수 있습니다  빠른 시일내에 좀 더 퀄리티 있게.   수정해보겠습니다 ㅠㅠ

안녕하세요 ! 오늘은 알고리아(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를 추출? 해야하는 작업이 필요한대 

일단 여기서는 생략하겠습니다!

 

혹시나도 궁금하거나 필요로 하시분들은 댓글에 달아주시면 알려드리겠습니다!!

 

 

 

 

 

728x90
반응형