일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바
- 데이터베이스
- 읽기쉬운코드
- 엘라스틱서치
- 스프링
- 프레임워크
- 그리디알고리즘
- Baekjoon
- 코딩
- API
- 알고리즘
- Java
- cleancode
- 애자일프로그래밍
- database
- 코딩테스트
- 그리디
- JPA
- ES
- Spring
- 백준
- 클린코드
- 개발
- 코드
- mongoDB
- Elasticsearch
- 애자일기법
- framework
- spring boot
- 개발자
- Today
- Total
목록색인 (3)
튼튼발자 개발 성장기🏋️
공간 정보 인덱스MongoDB는 공간 데이터를 효율적으로 검색하기 위해 2dsphere 인덱스를 지원한다. 이는 지구상의 좌표(경도 및 위도)를 저장하고 검색할 때 사용된다. 공간 정보를 저장할 때는 GeoJSON 형식을 사용하며, 주요 기하 구조는 다음과 같다.점(Point) { type: "Point", coordinates: [경도, 위도] }선(LineString){ type: "LineString", coordinates: [[경도1, 위도1], [경도2, 위도2], ...] }다각형(Polygon){ type: "Polygon", coordinates: [[[경도1, 위도1], [경도2, 위도2], ..., [경도1, 위도1]]] }참고로 내장객체 내 필드(type과 coordinates)는 ..

텍스트 분석 개요 엘라스틱서치는 루씬을 기반으로 구축된 텍스트 기반 검색엔진이다. 루씬은 내부적으로 다양한 분석기를 제공하는데 엘라스틱서치는 루씬이 제공하는 분석기를 그대로 활용한다. 그렇기 때문에 이 분석기를 어떻게 동작하는지 이해하고 구성하는 것이 중요하다. "우리나라가 좋은나라, 대한민국 화이팅" 문장이 있다고 가정해보자. 이 문장을 검색하기 위해 "대한민국"이라고 입력한다면 "우리나라"라는 단어가 존재하지 않기 때문에 검색이 되지않는다. 엘라스틱서치는 문서를 색인하기 전에 해당 문서의 필드 타입이 무엇인지 확인하고 텍스트 타입이면 분석기를 통해 이를 분석한다. 텍스트가 분석되면 개별 텀으로 나뉘어 형태소 형태로 분석이 수행된다. 해당 형태소는 특정 원칙에 의해 필터링되어 단어가 삭제되거나 추가/수..

앞서 언급한 분산의 포인트는 OS 캐시 활용과 인덱스(색인) 사용 그리고 확장을 고려하여 시스템을 설계하는 것이다. (MySQL은 물론이고 RDBMS는 인덱스를 생성하고 그로 인해 빠르게 데이터를 검색할 수 있는 구조가 마련되어 있다.) 보통 신규 프로젝트를 개발하게 될 때면 테이블 스키마를 그려하고 create table 쿼리로 테이블을 생성할 수 있다. 이 부분이 큰 규모일 수록 중요한 부분이 생기는데, 스키마를 얼마나 고려했는지, 분산과 확장성을 얼마나 고려했는지에 따라서 데이터가 큰 차이로 증감할 수 있다는 것을 이전 포스팅을 통해 알게되었다. 따라서 대량의 데이터가 저장되는 테이블일 수록 래코드가 최대한 작아지도록 컴팩트하게 설계되어야 한다. MySQL의 인덱스 경우에는 빠른 탐색을 위해 B트리..