Skip to content

Latest commit

 

History

History
172 lines (151 loc) · 5.11 KB

README.md

File metadata and controls

172 lines (151 loc) · 5.11 KB

Ecommerce-Search

  • Semantic 검색을 위한 검색 시스템 토이 프로젝트

아키텍처

diagram-export-2024 -12 -18 -오후-6_01_28

1. Prerequisites

mapping
PUT products
{
  "mappings": {
    "properties": {
      "productNo": {
        "type": "long"
      },
      "productDisplayName": {
        "type": "text"
      },
      "gender": {
        "type": "text"
      },
      "mainCategory": {
        "type": "text"
      },
      "subCategory": {
        "type": "text"
      },
      "articleType": {
        "type": "text"
      },
      "baseColor": {
        "type": "text"
      },
      "season": {
        "type": "text"
      },
      "year": {
        "type": "date"
      },
      "usage": {
        "type": "text"
      },
      "image": {
        "type": "text",
        "index": false
      },
      "searchKeywords": {
        "type": "text"
      },
      "image_features": {
        "type": "knn_vector",
        "dimension": 512,
        "method": {
          "name": "hnsw",
          "space_type": "l2",
          "engine": "lucene",
          "parameters": {
            "ef_construction": 128,
            "m": 24
          }
        }
      },
      "text_features": {
        "type": "knn_vector",
        "dimension": 1024,
        "method": {
          "name": "hnsw",
          "space_type": "l2",
          "engine": "lucene",
          "parameters": {
            "ef_construction": 128,
            "m": 24
          }
        }
      }
    }
  },
  "settings": {
    "index": {
      "knn": true,
      "knn.algo_param.ef_search": 100,
      "refresh_interval": "10s",
      "number_of_replicas": "10",
      "number_of_shards": "5"
    }
  }
}

2. 색인

  1. model-api를 실행시켜주세요
  • model-api는 이미지와 텍스트에 대한 feature를 제공하는 역할을 합니다.
    $ cd model-api
    $ pip install fastapi # fastapi cli 설치
    $ fastapi dev main.py # fastapi 실행
    
  1. api module을 실행시켜주세요.
  • api module은 색인 및 검색 기능을 제공합니다.
  • EcommerceSearchApplication 실행
  1. publisher module을 실행시켜주세요.
  • publisher module을 csv를 읽어 kafka로 메시지를 발행하는 역할을 합니다.
  • BootPublisherApplication 실행
  1. 색인 결과를 확인해주세요.

3. Api

  1. Api를 실행시켜주세요.
  • EcommerceSearchApplication 실행
  1. Swagger

4. Web

| ecommerce-template-tailwind-1 을 참고해서 개발했습니다.

  1. Web을 실행시켜주세요.
$ cd web
$ npm run start
  1. Main Page
스크린샷 2024-07-07 오후 6 06 19

Embedding 모델 비교

검색어 laser multilingual-e5-base distiluse-base-multilingual-cased-v1
protected notebook 스크린샷 2024-12-19 오전 8 51 56 e5 얀

사용 기술

TODO

  • image search