全文搜索引擎meilisearch使用
1. 全文搜索选型
1.1 全文搜索
Elasticsearch https://github.com/elastic/elasticsearch 72.1K
Meilisearch https://github.com/meilisearch/meilisearch 49.9K (选用)
typesense https://github.com/typesense/typesense 22.5K
sonice https://github.com/valeriansaliou/sonic 20.6K
zincsearch https://github.com/zincsearch/zincsearch 17.3K (备选)
Bleve https://github.com/blevesearch/bleve 10.3K
1.2 向量搜索(语义搜索)
Qdrant https://github.com/qdrant/qdrant 22.7k
Weaviate https://github.com/weaviate/weaviate?tab=readme-ov-file 12.9K
1.3 结论 (meilisearch)
- 如果需要全面的搜索功能且有运维能力:Elasticsearch
- 如果需要简单部署的全文搜索:Meilisearch
- 如果需要最高性能和专注的向量搜索:Qdrant 或 Weaviate
- 如果已有 PostgreSQL:考虑 pgvector 扩展
- 如果希望纯 Go 实现且内嵌:Bleve
AI学习路径
最近发现不少程序员转行大模型开发,直接去学pytorch、transformer, 从底层开始学,其实大可不必。你用了那么多年MYSQL也没见你想去重新开发一个数据库,怎么突然就想去开发一个新模型了。
如果你想弄个Deepseek,需要先评估自己的学历背景、学术背景,能不能加入国内这几家大模型开发团队,或者退一步也是做模型微调,但是不用Github开源的微调工具,自己有学术成果,设计新的微调方法,这条路几乎不适合半道转行的应用开发程序员。
大模型分类
golang的http库超时
1. Client 端
在作为客户端发送请求时,超时控制主要分两个层面:高层级的 http.Client 超时 和 低层级的 http.Transport 精细化控制。在大多数情况下,设置 http.Client.Timeout 就足够了,它可以有效地防止整个请求过程的无限期等待。

1.1 http.Client.Timeout
最简单,但有时太粗暴。这是最常用的设置,它控制包括连接、重定向(Redirects)以及读取响应体在内的整个请求生命周期的最大时长。
1 | c := &http.Client{ |
- 涵盖范围:Dial(拨号) -> TLS Handshake(握手) -> Request Headers/Body Send -> Response Headers Read -> Response Body Read。
- 优点:简单,能防止请求无限挂起。缺点:对于需要处理长流(Streaming)响应的请求(如下载大文件),这个超时如果不小心设置短了,连接会在中途被截断。
- 如果整个过程的累计时间超过
Timeout,请求会被强制取消,并返回net/http: request canceled (Client.Timeout exceeded)错误。

