/multi-search
路由允许您在一个或多个索引上执行多个搜索查询。
/multi-search
路由允许您通过将多个搜索查询捆绑到单个 HTTP 请求中,在一个或多个索引上执行多重搜索查询。多重搜索也称为联合搜索。
名称 | 类型 | 描述 |
---|---|---|
联合 | 对象 | 如果存在且不为 null ,则返回一个合并所有指定查询的搜索结果的单个列表 |
查询 | 对象数组 | 包含要执行的搜索查询列表。indexUid 搜索参数是必需的,所有其他参数都是可选的 |
联合
federation
接收包含所有指定查询的所有搜索结果的单个列表,按降序排列。这称为联合搜索。 federation
可选地包含以下参数:参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
offset | 整数 | 0 | 要跳过的文档数量 |
limit | 整数 | 20 | 返回的最大文档数量 |
facetsByIndex | 数组对象 | null | 显示指定索引的分面信息 |
mergeFacets | 对象 | null | 显示指定索引的分面信息 |
federation
缺失或为 null
,Meilisearch 返回一个包含多个搜索结果对象的列表,列表中的每个项目对应于请求中的一个搜索查询。
facetsByIndex
facetsByIndex
必须是一个对象。它的键必须与 Meilisearch 项目中的索引对应。每个键都必须与该索引的可筛选属性列表中的属性数组相关联
facetsByIndex
时,多重搜索响应中会包含一个额外的 facetsByIndex
字段。响应的 facetsByIndex
是一个对象,其中包含每个查询索引的一个字段
mergeFacets
mergeFacets
必须是一个对象,并且可以包含以下字段
maxValuesPerFacet
: 必须是整数。指定时,表示单个分面返回的最大值数量。默认为分配给maxValuesPerFacet
索引设置的值facetsByIndex
和 mergeFacets
都存在且不为 null 时,多重搜索响应中包含的分面信息将在所有查询索引中合并。响应中不包含 facetsByIndex
,而是包含两个额外字段:facetDistribution
和 facetStats
words
、typo
、attribute
、exactness
或 vector
相关)对于每个命中项分组为一个分数sort
和 geosort
分数详细信息保持不变queries
数组中排名最低的查询文档优先。查询
queries
必须是对象数组。每个对象可能包含以下搜索参数
搜索参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
federationOptions | 对象 | null | 配置特定查询的联合设置 |
indexUid | 字符串 | 不适用 | 请求索引的 uid |
q | 字符串 | "" | 查询字符串 |
offset | 整数 | 0 | 要跳过的文档数量 |
limit | 整数 | 20 | 返回的最大文档数量 |
hitsPerPage | 整数 | 1 | 每页返回的最大文档数 |
page | 整数 | 1 | 请求特定结果页面 |
filter | 字符串 | null | 按属性值筛选查询 |
facets | 字符串数组 | null | 显示每个分面的匹配计数 |
distinct | 字符串 | null | 将搜索限制为具有指定属性唯一值的文档 |
attributesToRetrieve | 字符串数组 | ["*"] | 在返回的文档中显示的属性 |
attributesToCrop | 字符串数组 | null | 需要裁剪其值的属性 |
cropLength | 整数 | 10 | 裁剪值的最大单词长度 |
cropMarker | 字符串 | "…" | 标记裁剪边界的字符串 |
attributesToHighlight | 字符串数组 | null | 突出显示属性中包含的匹配项 |
highlightPreTag | 字符串 | "<em>" | 插入到突出显示词开头的字符串 |
highlightPostTag | 字符串 | "</em>" | 插入到突出显示词末尾的字符串 |
showMatchesPosition | 布尔值 | false | 返回匹配项的位置 |
sort | 字符串数组 | null | 按属性值对搜索结果排序 |
matchingStrategy | 字符串 | last(最后) | 用于匹配文档中查询词的策略 |
showRankingScore | 布尔值 | false | 显示文档的全局排名得分 |
showRankingScoreDetails | 布尔值 | false | 添加详细的全局排名分数字段 |
rankingScoreThreshold | 数字 | null | 排除排名分数较低的结果 |
attributesToSearchOn | 字符串数组 | ["*"] | 将搜索限制在指定的属性上 |
hybrid | 对象 | null | 根据查询关键词和含义返回结果 |
vector | 数字数组 | null | 使用自定义查询向量搜索 |
retrieveVectors | 布尔值 | false | 返回文档向量数据 |
locales | 字符串数组 | null | 明确指定查询中使用的语言 |
/search
端点的搜索参数完全相同。
limit
、offset
、hitsPerPage
和 page
federationOptions
federationOptions
必须是一个对象。它接受以下参数
weight
:作为此特定查询中搜索结果排名分数的乘法因子。如果 < 1.0
,则此查询中的命中项不太可能出现在最终结果列表中。如果 > 1.0
,则此查询中的命中项更有可能出现在最终结果列表中。必须是正浮点数。默认为 1.0
remote
实验性:指示 Meilisearch 将执行查询的远程实例。必须是与远程对象对应的字符串。默认为 null
/multi-search
查询的响应可能因查询类型而异。
名称 | 类型 | 描述 |
---|---|---|
results | 对象数组 | 搜索查询的结果,按请求顺序排列 |
名称 | 类型 | 描述 |
---|---|---|
indexUid | 字符串 | 请求索引的 uid |
hits | 对象数组 | 查询结果 |
offset | 数字 | 跳过的文档数量 |
limit | 数字 | 要获取的文档数量 |
estimatedTotalHits | 数字 | 估计匹配总数 |
totalHits | 数字 | 穷尽的匹配总数 |
totalPages | 数字 | 穷尽的搜索结果页面总数 |
hitsPerPage | 数字 | 每页结果数 |
page | 数字 | 当前搜索结果页面 |
facetDistribution(分面分布) | 对象 | 给定分面的分布 |
facetStats | 对象 | 每个分面的数字 min 和 max 值 |
processingTimeMs | 数字 | 查询处理时间 |
query | 字符串 | 产生响应的查询 |
名称 | 类型 | 描述 |
---|---|---|
hits | 对象数组 | 查询结果 |
offset | 数字 | 跳过的文档数量 |
limit | 数字 | 要获取的文档数量 |
estimatedTotalHits | 数字 | 估计匹配总数 |
processingTimeMs | 数字 | 查询处理时间 |
facetsByIndex | 对象 | 搜索结果中存在的分面数据 |
facetDistribution(分面分布) | 对象 | 给定分面的分布 |
facetStats | 对象 | 每个分面的数字 min 和 max 值 |
remoteErrors | 对象 | 指示哪些远程请求失败以及原因 |
hits
数组中的每个结果都包含一个额外的 _federation
字段,其中包含以下字段
名称 | 类型 | 描述 |
---|---|---|
indexUid | 字符串 | 此文档的来源索引 |
queriesPosition | 数字 | 请求 queries 数组中查询的数组索引号 |
remote | 字符串 | 此文档的原始远程实例 |
weightedRankingScore | 数字 | 命中项的 _rankingScore 与原始查询权重的乘积。 |
200 Ok
200 Ok
200 Ok