Mesin pencari teks lengkap dari awal oleh Golangʕ◔ϖ◔ʔ (Hanya mainan)
Buat jaringan buruh pelabuhan (omochi_network) dengan:
$ docker network create omochi_network
Omochi menggunakan MariaDB untuk menyimpan Indeks & Dokumen Terbalik, dan Ent untuk ORM.
Untuk migrasi basis data, sambungkan shell kontainer buruh pelabuhan dengan:
$ docker-compose run api bash
Kemudian, jalankan migrasi database dengan:
$ go run ./cmd/migrate/migrate.go
Untuk mencoba mesin pencari, proyek ini menyediakan dua dataset sebagai sampel dalam Format TSV.
Dataset untuk bahasa Inggris adalah dataset judul Film , dan dataset untuk bahasa Jepang adalah dataset judul komik Doraemon .
Pertama-tama, sambungkan shell container buruh pelabuhan dengan:
$ docker-compose run api bash
Kemudian, data benih dengan:
$ go run {path to seed.go}
Jika Anda melakukan inisialisasi dengan kumpulan data Jepang, {path to seed.go}
seharusnya ./cmd/seeds/ja/seed.go
. Sebaliknya, untuk bahasa Inggris, ./cmd/seeds/eng/seed.go
.
Setelah menyelesaikan pengaturan, Anda dapat memulai aplikasi dengan menjalankan:
$ docker-compose up
Aplikasi ini memulai RESTful API dan mendengarkan koneksi pada port 8081
Setelah menyemai data, Anda dapat mencari dokumen dengan mengirimkan permintaan GET ke /v1/document/search
.
Parameter kueri adalah sebagai berikut:
"keywords"
: Kata kunci untuk dicari. Jika ada beberapa istilah penelusuran, tentukan istilah tersebut dengan dipisahkan koma seperti "hoge,fuga,piyo"
"mode"
: Mode pencarian. Mode pencarian yang dapat ditentukan adalah "And"
dan "Or"
Setelah penyemaian data berdasarkan kumpulan data judul komik Doraemon , Anda dapat mencari dokumen yang menyertakan "ドラえもん" dengan cara:
$ curl "http://localhost:8081/v1/document/search?keywords=ドラえもん" | jq .
{
"documents": [
{
"id": 12054,
"content": "ドラえもんの歌",
"tokenized_content": [
"ドラえもん",
"歌"
],
"created_at": "2022-07-08T12:59:49+09:00",
"updated_at": "2022-07-08T12:59:49+09:00"
},
{
"id": 11992,
"content": "恋するドラえもん",
"tokenized_content": [
"恋する",
"ドラえもん"
],
"created_at": "2022-07-08T12:59:48+09:00",
"updated_at": "2022-07-08T12:59:48+09:00"
},
{
"id": 11230,
"content": "ドラえもん登場!",
"tokenized_content": [
"ドラえもん",
"登場"
],
"created_at": "2022-07-08T12:59:44+09:00",
"updated_at": "2022-07-08T12:59:44+09:00"
},
...
Setelah penyemaian data berdasarkan kumpulan data judul Film , Anda dapat mencari dokumen yang mencakup "mainan" dan "cerita" dengan:
$ curl "http://localhost:8081/v1/document/search?keywords=toy,story&mode=And" | jq .
{
"documents": [
{
"id": 1,
"content": "Toy Story",
"tokenized_content": [
"toy",
"story"
],
"created_at": "2022-07-08T13:49:24+09:00",
"updated_at": "2022-07-08T13:49:24+09:00"
},
{
"id": 39,
"content": "Toy Story of Terror!",
"tokenized_content": [
"toy",
"story",
"terror"
],
"created_at": "2022-07-08T13:49:34+09:00",
"updated_at": "2022-07-08T13:49:34+09:00"
},
{
"id": 83,
"content": "Toy Story That Time Forgot",
"tokenized_content": [
"toy",
"story",
"time",
"forgot"
],
"created_at": "2022-07-08T13:49:53+09:00",
"updated_at": "2022-07-08T13:49:53+09:00"
},
{
"id": 213,
"content": "Toy Story 2",
"tokenized_content": [
"toy",
"story"
],
"created_at": "2022-07-08T13:50:35+09:00",
"updated_at": "2022-07-08T13:50:35+09:00"
},
{
"id": 352,
"content": "Toy Story 3",
"tokenized_content": [
"toy",
"story"
],
"created_at": "2022-07-08T13:51:23+09:00",
"updated_at": "2022-07-08T13:51:23+09:00"
}
]
}
MIT