Middle — Middle+
Кадом усулҳо ё воситаҳо барои иҷрои ҷустуҷӯи пурраи матн дар лоиҳа истифода бурдед?
sobes.tech AI
Ҷавоб аз AI
Барои татбиқи ҷустуҷӯи матни пурра дар лоиҳаҳои Go, одатан истифода мешаванд усулҳо ва воситаҳои зерин:
-
Китобхонаҳо ва бастаҳое, ки дар дохил ҳастанд:
bleve— китобхонаи маъруфи ҷустуҷӯи матни пурра дар Go, ки аз индекссозӣ, ҷустуҷӯ бо рейтинг ва филтрҳо дастгирӣ мекунад.go-elasticsearch— муштарӣ барои ҳамкорӣ бо Elasticsearch, агар муҳаррики ҷустуҷӯии хориҷӣ истифода шавад.
-
Маҳкамҳои ҷустуҷӯии хориҷӣ:
- Elasticsearch — муҳаррики ҷустуҷӯии тавоно, ки аксар вақт бо Go тавассути API REST ё китобхонаҳои муштарӣ истифода мешавад.
- Meilisearch — муҳаррики ҷустуҷӯии сабук ва тез бо API оддӣ.
-
Намунаи истифодаи Bleve:
import (
"github.com/blevesearch/bleve"
"log"
)
func main() {
indexMapping := bleve.NewIndexMapping()
index, err := bleve.New("example.bleve", indexMapping)
if err != nil {
log.Fatal(err)
}
data := struct {
ID string
Body string
}{ID: "1", Body: "Маслиҳати матни барои ҷустуҷӯ"}
index.Index(data.ID, data)
query := bleve.NewMatchQuery("ҷустуҷӯ")
searchRequest := bleve.NewSearchRequest(query)
searchResult, err := index.Search(searchRequest)
if err != nil {
log.Fatal(err)
}
log.Println(searchResult)
}
Аз ин рӯ, интихоби восита вобаста ба талаботи лоиҳа аст: соддагӣ ва ҳамгироӣ (bleve) ё масштабшавӣ ва функсионалият (Elasticsearch).