본문 바로가기

반응형

Welcome !

(441)
Elasticsearch 결과에 "_ignored" 가 나오는 이유 es 에서 검색 결과를 보다가 발견한 "_ignored" 필드 ! "_ignored": [ "description.keyword" // ? ], 이게 뭘까 query 날릴 때 분명 description 관련한 것은 아무것도 없는데 왜 _ignored 가 뜨며 description.keyword 가 왜 ignored 되었는지? Es 결과 { "took": 9, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 5, "relation": "eq" }, "max_score": 89.01466, "hits": [ { "_index": "test_i..
[Nestjs, Mongoose 에러] AllExceptionFilter document must have an _id before saving Nestjs + Mongoose db 로직을 수정하면서 모델을 수정했는데 기존에 잘 되던 create 요청에 에러가 났다. AllExceptionFilter MongooseError: document must have an _id before saving 저장 전 _id 가 반드시 있어야 한다는 것 같다. 모델에 디폴트로 _id가 생성되긴 하지만 모델에 _id에 정의해주었고 @Prop() 을 붙여준 게 문제였다. @Schema({ collection: 'blabla', timestamps: true, versionKey: false, read: 'secondaryPreferred', }) export class blablaModel { @Prop()
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew .zshrc 파일에서 무언가 수정 후에 아래 명령어로 적용을 해주어야하는데 계속 에러가 났다. .zshrc 수정 후 zshrc를 실행시켜주기 명령어 exec zsh or source ~/.zshrc * source ~/.zshrc 보다는 Exec zsh가 더 좋다고 한다. 그리고 나온 에러 compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew 저 경로를 못찾는다고 나오는데 경로따라 가보니 분명 _brew 파일이 있었다. 찾아보니 1. homebrew cleanup 해주기 brew cleanup 만 해주어도 에러가 고쳐지는 사람들이 있었고 나는 아니었다. 2. symbolic links 재설정 더 찾아보니 int..
[Http] 상태 코드 정리 http 상태 코드 정리 상태 코드 1xx (Informational) 요청이 수신되어 처리 중 2xx (Successful) 요청 정상 처리 3xx (Redirection) 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태코드 또는 미래에 새로 추가될 상태코드 (ex. 299) 가 온다면 위의 큰 범위로 생각해서 처리하면 된다. 1. 1xx (Informational) 거의 사용하지 않으므로 생략 2. 2xx (Successful) 200 : OK - 주로 get 에 대한 성공적인 결과로 주는 응답 201 : Creat..
[Elasticsearch] date format 날짜 형식 정리 Elasticsearch date foramt elasticsearch date 날짜에 사용할 수 있는 형식들 알아보기 Es에서 사용할 수 있는 형식은 Date math 표현, 이미 가지고 있는(built in formats) 규격 형식들과 커스텀 형식 이렇게 총 3가지로 나누어진다. 1. Date math expression Date Math 에 대해서는 예전에 작성한 포스팅 참고! [Elasticsearch] Data Math 개념과 계산하는 방법 Elasticsearch range queries에서 또는 datarange aggregations에서 사용되는 Date Math 알아보기 1) 기본 단위들 기본 단위들은 아래와 같다. supported units y Years M Months w Week..
[Elasticsearch] Aggregations 집계 총정리 Elasticsearch Aggregations, 집계 Elasticsearch 는 검색뿐 아니라 여러가지 연산을 할 수 있는 Aggregation 기능이 있다. Kibana에서 차트, 그래프 등으로 시각화시킬 때 사용하는 기능이 aggregation 이다. aggregations 에는 두 가지 종류가 있다. - Metrics aggregation : 숫자 또는 날짜 필드의 값으로 계산함 - Bucket aggregation : 범위나 keyword 값으로 그룹화함 그리고 확장하여 사용할 수 있는 aggregations 도 있다. - Sub-aggregation : bucket 하위 집계 - Pipeline-aggregation : metrics aggregation 결과로 다시 집계 Metrics ag..
[Elasitcsearch] Pipeline-Aggregation 개념 및 예제 Elasticsearch Aggregations, 집계 Elasticsearch 는 검색뿐 아니라 여러가지 연산을 할 수 있는 Aggregation 기능이 있다. Kibana에서 차트, 그래프 등으로 시각화시킬 때 사용하는 기능이 aggregation 이다. aggregations 에는 두 가지 종류가 있다. - Metrics aggregation : 숫자 또는 날짜 필드의 값으로 계산함 - Bucket aggregation : 범위나 keyword 값으로 그룹화함 그리고 확장하여 사용할 수 있는 aggregations 도 있다. - Sub-aggregation : bucket 하위 집계 - Pipeline-aggregation : metrics aggregation 결과로 다시 집계 이 포스팅에서는 집..
[Elasticsearch] bucket sub-aggregation 하위 집계 Elasticsearch Aggregations, 집계 Elasticsearch 는 검색뿐 아니라 여러가지 연산을 할 수 있는 Aggregation 기능이 있다. Kibana에서 차트, 그래프 등으로 시각화시킬 때 사용하는 기능이 aggregation 이다. aggregations 에는 두 가지 종류가 있다. - Metrics aggregation : 숫자 또는 날짜 필드의 값으로 계산함 - Bucket aggregation : 범위나 keyword 값으로 그룹화함 그리고 확장하여 사용할 수 있는 aggregations 도 있다. - Sub-aggregation : bucket 하위 집계 - Pipeline-aggregation : metrics aggregation 결과로 다시 집계 이 포스팅에서는 S..
[Elasticsearch] Bucket Aggregations 버킷 집계 정리 Elasticsearch Aggregations, 집계 Elasticsearch 는 검색뿐 아니라 여러가지 연산을 할 수 있는 Aggregation 기능이 있다. Kibana에서 차트, 그래프 등으로 시각화시킬 때 사용하는 기능이 aggregation 이다. aggregations 에는 두 가지 종류가 있다. - Metrics aggregation : 숫자 또는 날짜 필드의 값으로 계산함 - Bucket aggregation : 범위나 keyword 값으로 그룹화함 그리고 확장하여 사용할 수 있는 aggregations 도 있다. - Sub-aggregation : bucket 하위 집계 - Pipeline-aggregation : metrics aggregation 결과로 다시 집계 이 포스팅에서는 B..
[Elasticsearch] Metrics Aggregations 집계 정리 Elasticsearch Aggregations, 집계 Elasticsearch 는 검색뿐 아니라 여러가지 연산을 할 수 있는 Aggregation 기능이 있다. Kibana에서 차트, 그래프 등으로 시각화시킬 때 사용하는 기능이 aggregation 이다. aggregations 에는 두 가지 종류가 있다. - Metrics aggregation : 숫자 또는 날짜 필드의 값으로 계산함 - Bucket aggregation : 범위나 keyword 값으로 그룹화함 그리고 확장하여 사용할 수 있는 aggregations 도 있다. - Sub-aggregation : bucket 하위 집계 - Pipeline-aggregation : metrics aggregation 결과로 다시 집계 이 포스팅에서는 M..
[Elasticsearch] mapping field 수정 추가 삭제 Elasticsearch에 index를 처음 만들 때 , 필드는 어떤 것을 넣을 건지 보여주는 mappings와 analyzer, tokenizer, filter 등을 이용 및 custom 할 수 있는 settings를 함께 설정해 준다. 이 때, mapping또는 settings를 다시 세팅하고 싶은 경우가 있는데 불가능하고 다시 새로운 인덱스를 만들어 reindex해야 한다. 가능한 것은 _mappings에 새로운 field를 추가할 수 있다. 하지만 이미 만들어진 필드를 삭제하거나 타입/설정값을 수정하는 것은 불가능하다. 만약 운영 중인 es 클러스터라면 다운타임없이 진행하기위해 alias설정 후 reindex를 하면 된다. alias 설정해서 Reindex 하기 [Elasticsearch] ind..
[Elasticsearch] Analyzer, Tokenizer, Filter 개념 및 활용 방법 Elasticsearch Analyzer & Tokenizer & Filter 개념 및 사용 방법 Elasticsearch 에서 index를 만들 때 settings와 mappings를 정해주는 것이 좋다. settings는 해당 Index에서 사용할 analyzer, tokenizer, filter들을 세팅할 수 있다. 그리고 mappings에는 사용할 필드들을 선언하고 타입 등을 설정해 주는데, settings에 만들어 놓은 analyzer, tokenizer, filter을 각 필드 별로 적용하여 더 정확한 검색이 가능하다. 먼저 index를 새로 생성하기 전에 _analyze 로 임의의 text가 tokenizer, filter 로 어떻게 분석되는지 알아보면 좋다. Text가 Elasticsear..
[Elasticsearch] bool 복합 query 개념 정리 및 예제 Elasticsearch bool 복합쿼리 개념 정리 및 실습 / 예제 elasticsearch 검색에 있어 정확한 검색을 위해 bool 쿼리는 기본적으로 쓰이는 아주 유용한 query이다. 그동안 기존 코드를 사용하고 대강만 알고 있었는데 elasticsearch guide book 을 통해 정확하게 공부하고 정리해 보았다. match_all, match, match_phrase을 구별할 줄 안다면 Bool query는 금방 습득할 수 있다. 여러 조건을 모두 통합해서 검색을 할 때 상위에 Bool query를 사용한다. bool query는 다음과 같은 4개의 인자를 가지고 있다. Bool Query must 반드시 해당 쿼리가 도큐먼트에 존재해야 검색됨 must_not 쿼리가 거짓인 도큐먼트들을 검..
[Elasticsearch] object vs nested 설명 및 예제 Elasticsearch object vs nested Obeject - 한 필드 안에 하위 필드를 넣는 Object - es는 따로 배열타입의 필드를 따로 선언하지 않고 필드 타입 값만 동일하다면 배열로 그냥 넣으면 된다. -> Search 등 사용 방법은 동일하다. ex. { "title": "A" } ex. { "title": ["A", "B"] } Object mapping "characters"라는 object를 가진 인덱스 test_index mapping하기 PUT test_index { "mappings": { "properties": { "characters": { "properties": { "name": { "type": "text" }, "age": { "type": "byte" }..
[elasticsearch] PUT vs POST 사용법 및 차이 Elasticsearch PUT vs POST 사용법 및 차이 알아보기 PUT, 입력 - 데이터 입력 기능 - 데이터 수정 기능 : 존재하는 _id값이 있다면 Update 데이터를 한다. - 존재하는 _id값에 데이터 수정을 하기 싫다면 _create를 사용하면 에러가 낼 수 있다. - [ 인덱스/_doc/_id value] 형태이며 _id 값이 없으면 입력 오류가 난다. (_id 자동 생성 기능 없음 - POST는 있음) kibana로 실습해보기 PUT test_index/_doc/1 { "title": "제목1", "content": "내용1" } test_index라는 Index _doc / 1 (_id 지정해주기)에 아래 내용을 입력해준다. 결과 { "_index" : "test_index", "..
[elasticsearch] match_all, match, match_phrase 사용 방법 및 차이점 match_all, match, match_phrase 사용 방법 및 차이점 실습 전, 준비사항 test_index에 먼저 bulk로 데이터 입력해주기 & kibana POST test_index/_bulk {"index": {"_id":1}} {"message": "The little cute cat" } {"index": {"_id":2}} {"message": "The little cute cat eats the red fish" } {"index": {"_id":3}} {"message": "The little cute cat eats the brown fish" } {"index": {"_id":4}} {"message": "The cute cat little fish" } {"index": {..
[elasticsearch] preference 사용해야 하는 이유 / 방법 및 예제 알아보기 Elasticsearch search query를 날릴 때 Preference 옵션을 주어야하는 이유 그리고 그 방법 알아보기 Preference 란 ? search query를 날릴 때, elasticsearch는 디폴트로 예비 후보 nodes과 shards 중 랜덤하게 요청을 보낸다. (이 설명으로 유추해보면 primary로는 보내지 않는 것 같다.) 이 때 어떠한 shard 또는 Replica를 query search에 사용할지 유저가 "선호"를 미리 설정할 수 있는 것이 Preference option이다. Preference를 사용하지 않으면 ? ==> query 결과가 매번 다르게 된다. 똑같은 쿼리로 검색 시에 데이터의 결과 정렬이 달라질 수 있다. 검색 결과의 정렬은 es score 순으로..
[Elasticsearch] ELK란? 클러스터, 노드, 샤드에 대해 알아보기 Elastic ELK (Elasticsearch, Logstash, Kibana) Elasticsearch : 아파치 루씬 기반으로 JAVA로 개발된 분산형 RESTful 검색 및 분석 엔진 JAVA로 만들어져 JAVA 실행 가능한 환경이라면 어디서든 구동이 가능 오픈소스, 실시간 분석(real-time search), 전문 (full text) 검색 엔진, RESTful API, 멀티 테넌시, 역색인의 특징을 가짐 * 멀티 테넌시란? - 서로 다른 인덱스들을 별도의 커넥션없이 하나의 질의로 묶어서 검색, 결과도 하나의 출력으로 도출할 수 있는 특징 Logstash : 데이터 집계, 변환, 저장하는 오픈 소스 서버의 데이터 처리 파이프라인 데이터 수집을 위한 도구, Elasticsearch의 입력 수단으..
[elasticsearch] 필드 값이 존재하지않는 경우 query 만들기 Elasticsearch 에서 특정 field 값이 존재하지 않는 데이터를 찾을 때 쓰는 query 정리 exists 사용하기 GET test_index/_search { "query": { "constant_score": { // 이것도 함께 써주어야 오류가 안 난다. "filter": { "exists": { "field": "name" // "field" : "필드명" 적어주기 } } } } } 이렇게 exists를 사용하면 해당 필드 (위에서는 "name") 이 존재하는 데이터만 추려서 보여준다. 만약 type이 "nested"인 경우 query에 nested 추가하기 GET test_index/_search { "query": { "nested": { "path": "countries", "qu..
[js] input 값 숫자에 컴마 찍기 (thousands separators with commas) Input 값에 숫자를 입력하면 숫자가 그대~로 컴마없이 나온다. 1000000 -> 1,000,000 으로 변경하기 해당 input id를 불러와서 매 숫자의 천의 자리마다 "," 컴마를 찍는 함수를 keyup 이벤트로 넣어주었다. 원래는 더 간편하게 html input에 바로 onkyup="comma()" 이렇게 넣어주었다가 js가 해당 함수를 찾지못하는 에러가 났다. (랜더될 때 Js 함수가 Global이 아니라서라고 한다.) 찾아보니 global 하게 만들거나 또는 modern event handling (아래 코드 방식)으로 만드라고 해서 후자로 만들었다. html 원 javascript const money_input1 = document.getElementById('input1'); mone..
[Elasticsearch] Data Math 개념과 계산하는 방법 Elasticsearch range queries에서 또는 datarange aggregations에서 사용되는 Date Math 알아보기 1) 기본 단위들 기본 단위들은 아래와 같다. supported units y Years M Months w Weeks d Days h Hours H Hours m Minutes s Seconds 그리고 위의 단위들로 + - 기호를 사용해서 날짜를 계산할 수 있다. 2) 예시 ex) now == 2023-01-01 12:01:01 라고 할 때, 계산식 풀이 결과 now+1h now + 1 시간 2023-01-01 13:01:01 now-1h now - 1 시간 2023-01-01 11:01:01 now/m rounded down to the start of the m..
[최신] colab mecab 사용자사전 쉽게 추가하고 사용하기 일반 mecab을 google colab에 설치해서 사용자 정의 사전 추가하려니 에러가 계속 나오고 colab 위에서 해결되지 않는 에러들이 있었다. 찾아보니 colab에서 사용하는 mecab이 따로 있었다. [google colab에서 mecab 사용자 정의 사전 추가해서 사용하기] 1. Mecab-fo-for-Google-Colab 쉘스크립트를 이용하여 Mecab 설치하기 !git clone https://github.com/SOMJANG/Mecab-ko-for-Google-Colab.git cd Mecab-ko-for-Google-Colab/ !bash ./install_mecab-ko_on_colab190912.sh 2. mecab 사용해보기 from konlpy.tag import Mecab m..
colab mecab 사용자 정의 사전 세팅, 추가 및 사용하기 실패한 글 pytorch mecab 사용자 정의 사전 추가하기 목차 🕐 colab 준비 🕑 mecab 설치 🕒 mecab-ko, mecab-ko-dic 설치 및 컴파일 🕓 사용자 정의 사전 사용하기 근데 실패함 사용자 사전 추가를 위해 기존에 colab에 mecab 설치한 방식대로 진행했었는데 에러들이 나오고 결국 이 방식으로 실패함 성공한 글은 저 아래에,, 1. colab 에 Mecab 설치하기 : mecab은 보통 window에 설치하기는 어렵고 macOS, Linux에 설치할 수 있다. 하지만 설치 과정에 많은 에러가 나기로 유명하고 나도 에러가 아주 다양하게 터졌지만 어찌저찌 되긴 했다. colab 에서 mecab 설치하기 포스팅 [colab] konlpy mecab 설치 및 사용하기 on macOSX 한..
[colab] konlpy mecab 설치 및 사용하기 on macOSX 한국어 자연어처리 모델을 찾다가 여러가지가 많이 있는 대표적인 konlpy를 발견 ! 사용해보려고 했지만 설치하는 과정에서 에러가 많이 났다. 정확히는 설치는 잘 되는데 import에서 에러가 남ㅋ 처음에는 터미널에서 해야하나 터미널로 설치하고 했다가 그건 아닌 것 같고 colab에서 모두 설치하고 사용할 수 있었다. 1. bash 셸로 필요한 라이브러리들 설치 - colab에 아래 복사 붙여넣기 및 실행 %%bash apt-get update apt-get install g++ openjdk-8-jdk python-dev python3-dev pip3 install JPype1 pip3 install konlpy 2. JAVA_HOME 환경변수 설정 https://blckchainetc.tistory...

반응형