일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- KNN
- elasticsearch cache
- Cache
- NORI
- vavr
- file download
- Analyzer
- aqqle
- Elastic
- Query
- Docker
- Aggregation
- mysql
- ann
- dbeaver
- java crawler
- IONQ
- JPA
- Elasticsearch
- aggs
- redis
- request cache
- java
- 테슬라
- Selenium
- 아이온큐
- TSLA
- api cache
- 양자컴퓨터
- API
- Today
- Total
목록Aqqle (23)
아빠는 개발자
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 정보를 ..
검색대상 products index (alias : shop) index 의 prefix 랑 alias 를 맞춰야 겠다. 쿼리의 구조는 아래와 같은데.. 뭔가 복잡하네 query > function_score > query > bool > must , should query > function_score > functions > filter > match_all query > function_score > functions > script_score > script 위의 구조에서 script 의 유사도 비교는 cosineSimilarity 로 별다른 계산로직을 태우지 않고 일단 실행 결과값에 vector 제외 (excludes) API swagger 가 설치되어 있으니 검색 테스트 response 전체 ..
EER Diagram goods_text 를 사용하였으나... feature_vector 에서 문제가 발생 array 가 json 으로 파싱이 안된다.. 왜지.. 그래서 json 타입으로 DB 에 넣고 색인시점에 array 로 파싱 테이블 스키마 상품정보 더보기 상품정보 테이블 CREATE TABLE `aqqle_goods` ( `id` bigint NOT NULL AUTO_INCREMENT, `keyword` varchar(200) DEFAULT NULL, `brand` varchar(500) DEFAULT NULL, `category` varchar(2000) DEFAULT NULL, `category1` varchar(200) DEFAULT NULL, `category2` varchar(200) D..