February 10, 2022
algolia index에 json 데이터를 저장하는 코드다.
const algoliasearch = require('algoliasearch')
const ALGOLIA_APP_ID = process.env.ALGOLIA_APP_ID
const ALGOLIA_API_KEY = process.env.ALGOLIA_API_KEY
const ALGOLIA_INDEX_NAME = process.env.ALGOLIA_INDEX_NAME
const client = algoliasearch(ALGOLIA_APP_ID, ALGOLIA_API_KEY)
const index = client.initIndex(ALGOLIA_INDEX_NAME)
index.saveObjects([data], { autoGenerateObjectIDIfNotExist: true })
autoGenerateObjectIDIfNotExist: true를 설정 안 해줘서 살짝 삽질했다..
공식 문서에 나와있는 글을 보면 false일 경우 objectID를 포함하지 않는 객체를 저장할 경우 에러가 발생한다고 했는데, 아무런 에러가 발생하지 않는다.. 단지 저장이 안 된다
그렇다 index에 데이터를 저장하기 위해선 objectID를 넣어주어야 한다. 아니면 autoGenerateObjectIDIfNotExist를 true로 설정해 주고 몽고디비 ObjectId처럼 엔진이 자동으로 지정해 주도록 해야 한다. Java, JavaScript, PHP and .NET는 기본값이 false라고 한다.
When false, if any of the objects doesn’t contain an objectID, the method throws an error. When true, if any of the objects doesn’t contain an objectID, the engine automatically assigns one. Note: Java, JavaScript, PHP and .NET default to false.
index.search('query string') //무조건 쿼리스트링만 가능하다.