
Meilisearch 1.8 现已在Meilisearch Cloud 上可用——立即升级!
新增:排除搜索
Meilisearch 1.8 允许您使用 -
运算符从搜索结果中排除特定词语。
例如,要查找包含“room”但不包含“escape”的文档,请在“escape”前加上一个 -
curl -X POST 'https://edge.meilisearch.com/indexes/places/search' -H 'Content-Type: application/json' --data-binary '{ "q": "-escape room" }'
实验性:改进的混合搜索
AI搜索是一项实验性功能。请在此GitHub讨论中提供反馈。
新增Ollama嵌入器
Meilisearch 1.8 引入了对Ollama模型的支持。在您的索引设置中配置嵌入器
"default": { "source": "ollama", // 👈 Use the ollama source "url": "https://:11434/api/embeddings", // ☝️ optional, fetched from MEILI_OLLAMA_URL environment variable if missing "apiKey": "<your-api-key>", // ☝️ optional "model": "nomic-embed-text", "documentTemplate": "{{doc.field_name}}" // like for openAI and huggingFace sources }
新增REST嵌入器
从Meilisearch 1.8开始,您可以使用任何可通过REST API访问的嵌入器。以下是如何使用 rest
源配置OpenAI嵌入器:
{ "source": "rest", "apiKey": "<your-openai-api-key>", "dimensions": 1536, "url": "https://api.openai.com/v1/embeddings", "query": { "model": "text-embedding-ada-002" }, "inputField": ["input"], "inputType": "textArray", "pathToEmbeddings": ["data"], "embeddingObject": ["embedding"] }
有关 API 和可用参数的更多详细信息,请查阅REST 嵌入器的文档。
新增嵌入器设置:分布偏移
这是一个用于自定义模型的高级 API。OpenAI 和 Hugging Face 模型不需要此设置。
根据嵌入模型的不同,向量嵌入在向量空间中并不总是均匀分布的。当向量过度聚集时,语义搜索分数可能排名非常接近。由于语义分数过于集中,混合结果的相关性可能不理想。
为了解决这个问题,您现在可以通过仿射变换来移动结果的分布。这种变换会规范化语义分数,防止它们过高或过紧地聚集,使其更具可比性,与关键词分数进行比较。
"default": { "source": "huggingFace", "model": "MODEL_NAME", "distribution": { // describes the natural distribution of results "mean": 0.7, // mean value "sigma": 0.3 // standard deviation } }
- 平均值表示您观察到语义搜索分数密集聚集的中心点。在提供的代码示例中,此设置表明该模型的语义分数倾向于聚集在0.7的平均值附近。
- Sigma值决定了排名分数与平均值的扩散程度(标准差)。上述代码示例中提供的Sigma意味着在移动分布之前,结果倾向于与平均值有0.3的平均距离。
这允许更有效地比较语义搜索结果和关键词搜索结果之间的 _rankingScore
,从而改善结果排名。
重大变更:截断API响应
为了加快搜索响应并减少带宽使用,Meilisearch v1.8 不再在搜索响应中返回以下字段:
vector
字段,它返回查询向量value
字段,包含在vectorSort
对象中,当您在搜索查询中添加`”showRankingScoreDetails”: true”` 时返回_semanticScore
字段;其值与_rankingScore
相同,您应改为使用后者。在搜索参数中设置”showRankingScore”: true”
搜索鲁棒性改进
新增搜索截止设置
为增强稳定性和性能,Meilisearch 会自动终止任何超过 1500 毫秒的搜索请求。
要调整此超时阈值,您可以自定义 searchCutoffMs
设置
curl -X PATCH 'https://edge.meilisearch.com/indexes/movies/settings' -H 'Content-Type: application/json' --data-binary '{ "searchCutoffMs": 150 }'
实验性:并发搜索请求限制
此版本引入了对并发搜索请求的限制,以防止Meilisearch使用过多的RAM并崩溃。默认队列限制设置为1000个请求。
要修改此限制,请使用 --experimental-search-queue-size
选项重新启动您的自托管实例
./meilisearch --experimental-search-queue-size 100
👉 此限制不影响搜索性能。它仅控制可以同时排队的搜索请求数量,以增强系统安全性。
请在此GitHub讨论中就并发搜索请求限制提供反馈。
贡献者鸣谢
我们非常感谢所有参与本次发布的社区成员。我们要感谢:@availhang、@hack3ric、@jakobklemm、@mohsen-alizadeh、@redistay、@rohankmr414、@shuangcui、@Toromyx、@6543对Meilisearch的帮助,以及@Gusted、@mosuka、@6543对Charabia的贡献。
特别感谢我们的SDK维护者,感谢他们让Meilisearch支持如此多语言。🫶
1.8版发布到此结束!本文重点介绍了最重要的更新。如需完整列表,请阅读GitHub上的更新日志。
订阅我们的时事通讯,随时了解Meilisearch的所有动态。要了解Meilisearch的未来并帮助塑造它,请查看我们的路线图,并参与我们的产品讨论。
如有其他需求,请加入我们的开发者社区Discord。