Meilisearch의 필드 제한 문제와 해결 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
데이터 분석
대상자
- API 개발자, 데이터 처리 엔지니어, 검색 엔진 사용자
- 난이도: 중급 이상 (JSON 구조 이해 및 Meilisearch 사용 경험 필요)
핵심 요약
- Meilisearch는 문서에 최대 65,535개의 필드만 허용하며, 중첩된 JSON 구조로 인해 필드 수가 급증할 수 있음
- 중첩 객체를
JSON.stringify
로 문자열화하여 필드 수 줄이기가 핵심 해결책 - 필드 이름 일관성 유지와 필드 수 미리 감사가 필수적인 최고 실무 팁
섹션별 세부 요약
1. 문제 발생 원인
- Meilisearch는 중첩된 객체를
api.spec.get.description
과 같은 점 표기법으로 펼침 - 중첩 구조가 깊어질수록 필드 수가 기하급수적으로 증가
- 예:
x-sourceFiles
배열 100개 × 5 필드 = 500 필드 발생
2. 예시 문서 분석
- 원본 JSON:
api.spec.get.x-sourceFiles[0].fileName
과 같은 중첩 구조 - Meilisearch 인덱싱 시 65,535 필드 제한을 초과하는 위험
3. 해결 방법
- 중첩 객체 제거 및 문자열화(
JSON.stringify
) 적용 - 예:
api_sourceFiles
필드에{"fileName":"views.py", ...}
형식으로 저장 - 필드 수 감소: 4-5 필드 → 1 필드로 축소
4. 최적화 전략
- 필드 이름 일관성 유지 (
api_*
접두사 사용) - 필드 수 감사 자동화 (대규모 데이터 처리 시 필수)
- 필터링 필요 필드는 클라이언트 측에서 사전 처리
결론
- "중첩된 JSON 구조는 Meilisearch 필드 제한을 초과하게 만든다"는 핵심 원칙을 기억
- 필드 수 감사, 중첩 객체 제거, 필드 이름 규칙화를 통해 문제 예방
- LiveAPI와 같은 도구를 활용해 자동화된 API 문서화 및 인덱싱 가능