Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zeozeozeo/imgsearch
Small image search engine written in Go, HTML and CSS
https://github.com/zeozeozeo/imgsearch
gin golang image search search-engine website
Last synced: 28 days ago
JSON representation
Small image search engine written in Go, HTML and CSS
- Host: GitHub
- URL: https://github.com/zeozeozeo/imgsearch
- Owner: zeozeozeo
- License: unlicense
- Created: 2022-11-18T12:10:50.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-18T12:21:11.000Z (almost 2 years ago)
- Last Synced: 2024-10-08T15:09:05.074Z (about 1 month ago)
- Topics: gin, golang, image, search, search-engine, website
- Language: Go
- Homepage:
- Size: 8.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# an image search engine in Go
This is a very basic image search engine website based on my other library, [imagesim](https://github.com/zeozeozeo/imagesim). It uses the [Gin](https://github.com/gin-gonic/gin) HTTP framework.
![landing](https://github.com/zeozeozeo/imgsearch/blob/main/landing.png?raw=true)
![search results](https://github.com/zeozeozeo/imgsearch/blob/main/results.png?raw=true)
(uses images from the LAION-5B image dataset)
# how to use
1. Generate a database file. An example of indexing 30000 images from the [Laion-5B dataset](https://www.kaggle.com/datasets/vitaliykinakh/guie-laion5b-dataset) can be found in [internal/index-laion.go](https://github.com/zeozeozeo/imgsearch/blob/main/internal/index-laion.go)
2. When starting up, it will look for a `database.txt` file. The file is structured like this:```
/some/url/here.jpg 6845807407824432640
/another/url/here.jpg 296956165250596863
...
```The second number stands for the image hash generated by the [imagesim](https://github.com/zeozeozeo/imagesim) library. Each line is a new image entry.
3. If you have your images saved locally, create an `images` folder in the same directory as the main file. It will index all images inside that folder and put them into `database.txt` (if it does not exist). Currently it only supports PNG and JPEG formats.
# command-line arguments (-h)
```
-embed
specifies whether templates and CSS should be embedded into the executable (default true)
-path string
path to database file (default "database.txt")
-port uint
port to start Gin on (default 8080)
-release
specifies whether Gin should run in release mode (default true)
-serve-images
specifies whether the images/ folder should be served
```