Hi! 160

[NodeJS] ElasticSearch API getTemplate(index_template)

인덱스 템플릿(index_template)? 인덱스를 생성할 때 맵핑 정보를 입력해서 생성해야 한다. 맵핑 정보 입력 없이 그냥 생성하고 데이터를 넣으면 필드 맵핑이 이상하게 만들어져서 데이터 조회나, 어그리게이션 등이 정상적으로 되지 않는다. 매번 인덱스를 생성할 때 셋팅 정보, 맵핑 정보 입력하는 게 정말 귀찮다. 이런 불편한 점을 해결하는데 인덱스 템플릿을 사용하면 좋다. https://www.elastic.co/guide/en/elasticsearch/reference/current/index-templates.html Index templates | Elasticsearch Guide [7.16] | Elastic This topic describes the composable index tem..

Node.js 2022.01.03

2021년 그리고 2022년

2017년부터 웹 개발자를 시작했고, 그중 가장 빨리 간 1년인 것 같다. 나름 올해 목표로 잡았던 1일1커밋, 1주일에 블로그 글 1개, 프레임워크 공부, 프로그래밍 관련 책 읽기 중 크게 성공을 한건 프레임워크 공부밖에 없는 것 같다. 1. GitHub 4개가 빵꾸가 나긴 했지만 그렇다고 완벽한 커밋은 아니긴 했다. 습관을 들이기 위해 아무것도 하지 않은 날도 커밋을 넣어서 매꾼날도 좀 있다. (none으로 커밋한 부분) 아무것도 안하고 커밋한 날은 자주 작업하는 레파지토리에 안 한 날짜를 기록하는 파일을 두고 작성을 했고, 안 하려고 하는 날이면 그거보고 오늘은 하자라는 생각이 들기도 했다. (나름의 나태해지지 않기 위한 방안이었다...) 그래도 그런것 치곤 생각보다 안 한 날이 많긴 했다. 이번 ..

ETC 2022.01.01

[NodeJS] bulk 데이터 파일 읽어서 ElasticSearch에 등록하기

https://minu0807.tistory.com/114 여기랑 이어지는 내용이기도 함. const fs = require('fs'); const es_client = require('./client'); async function asyncForEach (array, callback) { for (let index = 0; index { console.log(name); let data = fs.readFileSync('./_bulk/' + name, 'utf8'); let bulk = await es_client.bulk({ body: data }) console.log(bulk); }) } catch (err) { console.error(err); } } run(); _bulk 디렉터리에 벌크 ..

Node.js 2021.11.25

[NodeJS] Multer를 이용해 파일 ElasticSearch에 등록하기

https://minu0807.tistory.com/111 [VueJS] NuxtJS+VuetifyJS 파일 업로드 기능 만들어보기 NuxtJS와 VuetifyJS를 이용해 만들었습니다. 최종 목표는 1. NuxtJS 웹에서 첨부한 파일을 Express로 넘겨준다. 2. Express에서 Multer를 이용해 ElasticSearch에 데이터를 생성한다. 이렇게이고, 이 글에서는 1번.. minu0807.tistory.com 이 글의 2번째 목표에 해당하는 글입니다. 우선 엘라스틱에 데이터를 넣기 위해 만든 인덱스의 맵핑 정보. file_content : 파일 바이너리 값 file_mk_dt : 파일 등록일 file_name : 파일명 file_size : 파일 사이즈 여기서 알아두어야 할게 file_c..

Node.js 2021.11.20

[VueJS] NuxtJS+VuetifyJS 파일 업로드 기능 만들어보기

NuxtJS와 VuetifyJS를 이용해 만들었습니다. 최종 목표는 1. NuxtJS 웹에서 첨부한 파일을 Express로 넘겨준다. 2. Express에서 Multer를 이용해 ElasticSearch에 데이터를 생성한다. 이렇게이고, 이 글에서는 1번에 대해 작성. 2번에 대한 글은 (https://minu0807.tistory.com/112) 여기를 봐주세요. 우선 만든 화면은 이렇다. 파일 첨부 역할을 하는 컴포넌트 1개와 엘라스틱서치에 저장된 데이터를 가져와 리스트를 보여주는 테이블 컴포넌트 1개 이렇게 2개의 컴포넌트로 구성되어 있다. 리스트는 생략하고 등록 부분 소스 mdi-upload 파일 등록 mdi-upload 파일 등록 Vuetify에서 제공하는 v-file-input를 이용했다. h..

VueJS/Nuxt 2021.11.20

[VueJS] 프로젝트 내 파일 다운로드 기능(download)

Nuxt, vue-cli 둘 다 모두 사용 가능하다. 먼저 Nuxt 방법 Nuxt 프로젝트 안에 static 디렉터리에 다운로드할 파일을 넣는다. 그리고 이벤트를 실행할 버튼과 경로를 아래와 같이 작성한다. 프로젝트 내부 파일 다운로드 이제 실행해서 저 버튼을 누르면 다운로드가 된다. vue-cli에서의 방법 cli 프로젝트 안에 public 디렉터리에 다운로드할 파일을 넣는다. 그리고 이벤트를 실행할 버튼과 경로를 아래와 같이 작성한다. 실행 후 버튼을 누르면 위에 처럼 똑같이 받아진다. 그리고 vuetify의 v-btn은 저런 식으로 v-btn에 href와 download를 넣으면 작동이 하지만 그냥 button 태그는 작동하지 않고, a 태그는 정상 작동한다.

VueJS 2021.10.31

[VueJS] vue-json-csv 사용해보기

csv 기능 구현 중 npm이 있을까? 하고 검색해보았는 데 있었다. 어지간한 건 다 있는 듯하다. json 형식의 데이터를 csv 파일로 생성해준다. > 설치 방법 npm install vue-json-csv https://www.npmjs.com/package/vue-json-csv vue-json-csv Download your JSON data as an CSV file directly from the browser www.npmjs.com > 적용 적용은 NuxtJS 기반 프로젝트에 적용했고, 아래와 같이 적용했다. plugins 디렉터리에 vue-json-csv.js 파일 생성 후 코드 작성 import Vue from 'vue'; import JsonCsv from 'vue-json-csv'..

VueJS 2021.10.10

[ElasticSearch] _bulk 중 action_request_validation_exception 에러

벌크 데이터를 넣으려고 했을 때 { - "error": { - "root_cause": [ - { - "type": "action_request_validation_exception", "reason": "Validation Failed: 1: type is missing;" } ], "type": "action_request_validation_exception", "reason": "Validation Failed: 1: type is missing;" }, "status": 400 } 이런 에러가 출력된다면 인덱스, 타입 부분 쪽을 다시 확인해볼 것. 내가 했던 실수는 {"index":{"_index":"index_name"}} {"field1":"value1","field2":"value2"} 이..

ElasticSearch 2021.10.07