개발 150

elasticsearch. 역인덱싱과 분석기 [엘라스틱 스택 개발부터 운영까지]

엘라스틱서치는 전문 검색을 지원하기 위해 역인덱싱 기술을 사용한다. 전문 검색은 장문의 문자열에서 부분 검색을 수행하는 것이며, 역인덱싱은 장문의 문자열을 분석해 작은 단위로 쪼개어 인덱싱하는 기술이다. 역인덱싱을 이용한 전문 검색에서 양질의 결과를 얻기 위해서는 문자열을 나누는 기준이 중요하며, 이를 지원하기 위해 엘라스틱 서치는 캐릭터 필터, 토크나이저, 토큰 필터로 구성되어 있는 분석기 모듈을 갖고 있다. - 분석기에는 하나의 토크나이저가 반드시 포함돼야 하며, 캐릭터 필터와 토큰 필터는 옵션이므로 없어도 되고 여러 개를 함께 사용해도 된다. 분석기 구성 구성요소 설명 캐릭터 필터 입력받은 문자열을 변경하거나 불필요한 문자들을 제거한다 토크나이저 문자열을 토큰으로 분리한다. 분리할 때 토큰의 순서나..

baekjoon. 크게 만들기 (2812) [python][Gold III]

문제 링크 : https://www.acmicpc.net/problem/2812 >> 접근방법 - 숫자 k개를 지웠을때 맨 앞의 수가 가장 클수로 정답인 가장 큰 수를 얻을 수 있다. 내가 처음에 풀었던 접근은 숫자 중에서 제일 큰 숫자들을 남기는 방식으로 접근했는데, 그럴경우 세번째 예시에서 477584가 남으면서 775841에서 답이 틀린다. - 이를 위해 현재 인덱스 위치값보다 왼쪽(-1 위치)값이 작고 지울 수 있는 횟수 k가 남아있다면 현재 인덱스 왼쪽 (-1) 값을 지워주면 된다. >> 내가 푼 풀이 N, K = map(int, input().split()) num = input() stack = [] cnt = K for i in num: # 현재 i가 stack에 있는 값보다 크다면 제거 ..

baekjoon. 큐2 (18258) [python][Silver IV]

문제 : https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제풀이 import sys from collections import deque n = int(input()) queue = deque([]) for i in range(n): str = sys.stdin.readline() strArray = str.split() command = strArray[0] if len(strArray) > 1: args = str..

elasticsearch. 문자열 타입 (텍스트 타입 / 키워드 타입 / 멀티 타입) [엘라스틱 스택 개발부터 운영까지]

엘라스틱서치 5.x 버전부터 문자열 타입이 텍스트와 키워드라는 두 가지 타입으로 분리되었다. >> 텍스트 타입 - 일반적으로 문장을 저장하는 매핑 타입으로 사용한다. - 텍스트 타입으로 지정된 문자열은 분석기에 의해 토큰으로 분리되고, 이렇게 분리된 토큰들은 인덱싱되는데 이를 역인덱싱이라고 한다. - 역인덱싱된 용어 중 하나라도 포함되면 도큐먼트를 찾는다. - 텍스트 타입의 경우 기본적으로 집계나 정렬을 지원하지 않으며, 매핑 파라미터로 집계나 정렬을 지원할 수 는 있으나 메모리를 많이 사용한다는 단점이 있다. - 텍스트 타입으로 지정된 필드를 정렬할 경우 문장의 첫 문자열이 아닌 분해된 용어를 기준으로 정렬을 수행하므로 예상과는 다른 결과를 얻게 된다. # text 타입 가진 text_index 인덱스..

php. $this와 self의 차이점

$this : 현재 인스턴스 self : 명령이 시행되는 위치의 클래스 자체 1. $this를 사용해야 하는경우 별다른 이유가 없는경우 2. self::를 사용해야하는경우 현재 클래스를 가리켜야만 하는경우 (static등)에는 self를 사용 https://velog.io/@qjdrptmzk/PHP-this-vs-self PHP this vs self this는 현재 인스턴스를 가리키고 self는 호출된 클래스 자체를 가르킴construct가 자식클래스(Y)에는 없지만 부모클래스(X)에 construct가 있기 때문에 인자가 없는 Y클래스가 생성된 경우에 부모클래 velog.io

개발/라라벨 2023.02.16

elasticsearch. elasticsearch / kibana 설치 (맥 os)

1. elasticsearch install brew tap elastic/tap brew install elasticsearch-full 설치 완료되었으면 elasticsearch 명령어 통해 실행한다. 실행 후, curl -XGET localhost:9200 통해서 아래와 같이 나오면, 실행된 것이다. 2. kibana install brew tap elastic/tap brew install kibana-full 설치 완료되었으면 kibana 명령어 통해 실행한다. 실행 후, http://localhost:5601/ 로 접속하면 아래와 같은 홈화면이 뜬다. 홈화면은 버전마다 다를 수 있다. Elastic Search / kibana 설치 (맥os) 1. homebrew 설치하기 https://www..

baekjoon. 쇠막대기 (10799) [python][Silver II]

문제 링크 : https://www.acmicpc.net/problem/10799 문제 풀이 sticks = input() stack = [] count = 0 for i in range(len(sticks)): cur = sticks[i] # ( 만나면 stack push if (cur == '('): stack.append(cur) # 최상단이 (이고 그 다음이) 이면 size 추가 # ) 만나면 1 추가 elif (cur == ')'): stack.pop() if (sticks[i - 1] == '('): count += len(stack) else: count = count + 1 # print(i, ' : ', cur, ' - ', count) print(count) ((( () () ))) 를..

baekjoon. 스택 (10828) [python][Silver IV]

문제 링크 : https://www.acmicpc.net/problem/10828 문제풀이 import sys stack = [] # stack = array : 복잡하게 클래스로 만들 필요 없다 def push(data): stack.append(data) def pop(): if (empty()): print(-1) else: lastIndex = len(stack) -1 print(stack.pop(lastIndex)) # remove (value), pop (index) def size(): print(len(stack)) def empty(): if len(stack) == 0: return 1 else: return 0 def top(): if (empty()): print(-1) else: ..

web. 구글 폰트 적용하기 (Lexend Deca 적용)

1. 구글 폰트 사이트 접속 Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 2. 원하는 글꼴 선택하여 굵기 및 스타일 선택 https://fonts.google.com/specimen/Lexend+Deca Google Fonts: Lexend Deca Lexend is a collection of seven font families intended to improve reading proficiency. As prescription eyeglasses achieve proficiency for persons with short-sig fonts.google.com 3. 상..

반응형