Sobes.tech
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).