본문 바로가기
반응형

All205

[루씬 인 액션] 3. 색인(2) - 고급 색인 기법 준실시간 검색 루씬 2.9이상 핵심 기능 중 하나인 준실시간(Near real time) 검색 기능이 추가되었습니다 준실시간이란 색인한 문서를 거의 즉시 검색할 수 있는 기능입니다 일반적인 검색 엔진에서는 제대로 지원하지 못하는 경우가 많습니다 루씬에서는 IndexReader.getReader() 메소드를 통해 준실시간 검색을 지원합니다 IndexReader 객체는 기존에 열려있던 세그먼트 정보를 그대로 사용하며, 새로 추가되거나 변경된 세그먼트만 새로 읽어 들이기 때문에 매우 효율적으로 빠르게 생성합니다 색인 최적화 수많은 세그먼트로 구성된 색인의 경우 최적화 과정을 거쳐 세그먼트의 개수를 최소화하면 검색 속도를 향상시킬 수 있습니다 최적화 작업은 검색속도를 향상시켜주지만, 색인 속도에는 영향이 없다 .. 2020. 11. 18.
[루씬 인 액션] 2. 색인(1) - 색인 절차 및 작업 색인에서는 4가지 주제를 통해 알아보겠습니다 1. 기본적인 색인 작업 2. 색인 과정에서 문서나 필드에 중요도 지정 3. 날짜, 숫자 필드, 정렬 가능한 필드 4. 고급 색인 기법 색인 작업은 단 하나의 목표를 갖고 있다는 점을 기억하자! → 바로 사용자에게 제공할 검색 서비스의 품질입니다 즉, 거의 모든 검색 애플리케이션에서 색인 과정의 세부적인 설정 1~2가지 보다는 사용자가 원하는 검색 기능이 훨씬 중요합니다 루씬 데이터 모델 문서와 필드 문서란 루씬에서 색인과 검색 작업을 진행할 때 한 건이라고 부를 수 있는 단위입니다 문서에는 1개 이상의 필드를 가집니다 검색 시점에 특정 필드의 값을 검색할 수 있는데 예를 들어 'name:jack'이라고 검색하면, name이란 필드에 jack이란 단어가 들어있.. 2020. 11. 18.
[Leetcode(릿코드)] 2. Add Two Numbers (Medium) leetcode.com/problems/add-two-numbers/ Add Two Numbers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 배열 2개가 주어진다 두 배열의 각 자리 숫자의 합을 더한다 ex) l1 = [2,4,3], l2 = [5,6,4] 2 4 3 + 5 6 4 --------- 7 0 8 일반적인 덧셈과 반대로 앞자리부터 더한 후, 10이 넘어가면 뒤로 1을 넘겨준다 정답은 [7,0,8]이다 해결 l1 또는 l2가 널이 아니거나.. 2020. 11. 18.
[Leetcode(릿코드)] 53. Maximum Subarray (Easy) leetcode.com/problems/maximum-subarray/ Maximum Subarray - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 subarray의 합이 최대일 때, 그 값을 출력하는 문제이다 해결 dp배열을 이용해 풀었다 (시간복잡도 : O(N)) dp 배열을 만들고, dp 값을 계산하면서 max 값을 update ex) nums : -2 1 -3 4 -1 2 1 -5 4 dp : -2 1 -2 4 3 5 6 1 5 dp는 해당 인덱.. 2020. 11. 18.
[프로그래머스] 배달 (Level 3) programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 문제 도로의 정보(2차원배열), N(노드의 개수), K(거리)가 주어진다 도로의 정보에는 각 노드-노드 (거리)의 정보가 들어있다 N=5이면 1,2,3,4,5라는 도시가 있고 도로의 정보가 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]]이면, 1-2도시의 거리는 1, 2-3도시의 거리는 3.. 이다 문제는 다음.. 2020. 11. 18.
[프로그래머스] 방문 길이 (Level 3) programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 문제 (0,0)부터 시작한다 U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 위와 같은 규칙으로 움직인다 (input : ULURRDLLU) 이동한 길의 개수를 출력하는 문제이다 (하지만, 한번 이동했던 길은 카운트하지 않는다) 해결 Enum 클래스에 각 규칙의 좌표를 정의한다 Graph 클래스에는 Point(좌표) 클래스와 Set을 필드로 둔다 그리고 move()라는 메소드를 통해 좌표를 움직인다 start, end 객체를 생성하고 Set에 넣는다 (여기서 좌표는 최대 -5 < x,y < 5 .. 2020. 11. 18.
[이펙티브자바 3판] ITEM37. Ordinal 인덱싱 대신 EnumMap을 사용하라 이번장의 핵심은... 배열의 인덱스를 얻기 위해 ordinal을 쓰는 것은 일반적으로 좋지 않으니, 대신 EnumMap을 사용하라. 몇몇 예를 통해 알아보자 Ex) 정원에 심은 식물들을 배열 하나로 관리하고, 생애주기(한해살이, 여러해살이, 두해살이)별로 묶어보자 class Plant { enum LifeCycle{ ANNUAL, PERENNIAL, BIENNIAL } final String name; final LifeCycle lifeCycle; public Plants(String name, LifeCycle lifeCycle) { this.name = name; this.lifeCycle = lifeCycle; } @Override public String toString() { return na.. 2020. 11. 14.
반응형