일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- API
- KNN
- ann
- JPA
- elasticsearch cache
- 양자컴퓨터
- Docker
- mysql
- Elasticsearch
- 테슬라
- aqqle
- Elastic
- Aggregation
- api cache
- file download
- redis
- Analyzer
- Cache
- Query
- IONQ
- TSLA
- NORI
- request cache
- Selenium
- aggs
- java
- dbeaver
- 아이온큐
- vavr
- java crawler
- Today
- Total
목록Aqqle (27)
아빠는 개발자

Aqqle 컨셉이 자꾸 바뀌는거 같지만.. 일단 미국주식을 정보를 긁어봐야겠다. 일단 먹잇감은 아래 이녀석이다. 페이징도 있으니.. 넌.. 디졌다. 앞에 code 와 longName 을 긁어다가 DB 에 넣고 저 코드로 주가정보 히스토리 파일을 다운받아서 배치로 색인할 예정일단 긁었다. package com.doo.aqqle.service;import com.doo.aqqle.element.Site;import com.doo.aqqle.factory.SiteFactory;import com.doo.aqqle.factory.YahooFactory;import com.doo.aqqle.repository.Stock;import com.doo.aqqle.repository.StockRepository;im..
일단 테이블을 만들자.. 만들고 나서 생각하자 어차피 수정할꺼니까 CREATE TABLE `users` ( `id` bigint NOT NULL AUTO_INCREMENT, `user_id` varchar(200) NOT NULL, `name` varchar(200) NOT NULL, `use_yn` enum('Y','N') NOT NULL DEFAULT 'Y', `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE=InnoDB AU..
사전관리CREATE TABLE `dictionary` ( `id` bigint NOT NULL AUTO_INCREMENT, `word` varchar(200) NOT NULL, `type` varchar(20) NOT NULL, `use_yn` enum('Y','N') NOT NULL DEFAULT 'Y', `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `word_index` (`word`)) ENGINE=InnoDB..

Admin 에서 사용할 API 들을 manage project 에 작업해놓음 우선 키워드 관리 크롤러가 사용할 keyword 들에 대한 CRUD 를 관리 Table 스키마 CREATE TABLE `keywords` ( `id` bigint NOT NULL AUTO_INCREMENT, `keyword` varchar(200) NOT NULL, `use_yn` enum('Y','N') NOT NULL DEFAULT 'Y', `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY..

EXTRACT 에서 추출한 파일을 INDEXER 에서 읽어서 ES에 색인한다. 뭐 이런 컨셉으로 만들었는데.. index 의 생성/삭제 관리쪽이 아직 부족하다.

DB에 있는 데이터를 추출 해서 파일로 만든다 색인데이터가 유실되는것을 막기위해 안전하게 처리하기 위함이라고 생각했는데 데이터가 많아지면 이방법으로 가능할까? 라는 의문이 들긴한다. 파일 생성 경로는 /data/static 실행해보자 /data/static/202402032221 라고 경로가 찍히고 해당 경로에 디렉토리가 생성되고 디렉토리 안에 아래와 같이 파일이 생성된다. 파일을 열어보면 이렇게 저장되어 있는데 512차원의 백터값 때문에 지저분하다.

키워드 관리 크롤링에서 사용할 키워드들을 관리하는 메뉴 AdminLTE 의 jsGrid 테이블 셈플을 사용해서 만들예정 일단 리스트 불러오기 예전에 만들어 놓았던 aqqle manage api 의 키워드 관리를 활용할 예정 일단 axios get 사용해서 /manage/keywords API를 호출 var keyword = { init: function () { var _this = this; }, // init end list: { search: function () { var data = {}; const config = { headers: {'content-type': 'application/json'} } return axios.get($("#api").val() + '/manage/keyword..

bootstrap 무료 어드민을 사용해 aqqle 관리화면을 만들 예정 https://github.com/ColorlibHQ/AdminLTE 개발환경 요약 java thymeleaf jQuery + axios bootstrap 우선 thymeleaf 로 레이아웃을 나눠보자 build.gradle 에 추가 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' compileOnly group: 'org.webjars.npm', name: 'axios', version: axiosVersion Controller 생성 ..

Api 구조 aqqle api 컨셉 - 상품을 검색했을때 상품정보와 상품을 파는 매장정보까지 같이 반환 해주는 API 900gle은 vector의 유사도 검색에 비중을 높였다면 Aqqle 는 캐싱에 좀 더 포커싱을 맞추는 중 지금 까지 작업한 구조는 위와 같다. vector 의 유사도 검색이 들어가긴 하지만 simularity 플래그를 두어서 검색에서 빼는 조건을 추가 상품을 검색하면 상품정보를 가져오고 내 위치 기준 5km 이내의 점포 정보를 가저온다 LOCATION 엔 스토어 위치정보 ITEM 엔 상품정보 이제 테스트를 진행 해보자 근데 문제는 지금도 실행속도가 너무 빠르다. API 평균 : 20.64 API 평균 : 22.27 API 평균 : 21.58 평균 20이라고 치고 location 정보를 ..