文档目录
从这里开始
优化搜索结果
如何优化搜索结果设置可搜索字段排序器设置搜索结果分页搜索结果过滤结果高亮返回字段设置返回字段永不返回字段

返回字段设置

有时你希望控制搜索时返回的字段,某一些字段你只希望用户可以搜索,但不一定需要用来展示。

比如说,如果你的搜索对象是文章,那么正文对于搜索排序来说可能很重要,但在展示搜索结果时,你可能并不会将正文直接展示出来。同时,如果你在服务端进行搜索的话,较大的字段可能会占用较多流量和带宽,因此你希望略去。

另外一些情况,你可能希望用一些字段用于搜索和排序,但并不希望用户能够查看到这些字段。

比如,在商品搜索时,销售额可能是一个比较重要的排序指标,但你并不希望你的用户能直接查看到这些商品的销售额。

在卡拉搜索中,你可以通过返回字段 fieldsToRetrieve 和禁止返回字段 fieldsNeverRetrieve 来控制搜索结果中返回的字段。返回字段和禁止返回字段均可以在后台的索引设置中的 返回字段 一栏中进行调整。

返回字段

我们用来指定返回字段的设置叫 fieldsToRetrieve,即 返回字段。在索引设置中,你可以指定返回字段。仅有指定的字段会返回到搜索结果中,默认为返回所有字段。

比如说,如果你将 fieldsToRetrieve 设置为仅返回 ["title"],那么在搜索结果中,在 hits.source 中就只有标题这一个字段被返回。

{
"totalHits": 1,
"hits": [
{
"id": "n_u-QXQBFAjd3marbeiR",
"source": {
"title": "大话西游"
},
"highlights": {
"summary": {
"value": "一部周星驰主演的爱情喜剧片",
"hasMatch": false
},
"title": {
"value": "<strong>大话</strong>西游",
"hasMatch": true
}
}
}
],
"queryTimeUsed": 0
}

永不返回字段

我们用 fieldsNeverRetrieve,即 永不返回字段 来设置永远不会返回到搜索结果的字段。

对于一些字段,如果需要确认它绝不会返回到搜索结果中,那么可以使用永不返回字段。比如说,如果一件商品的销售件数需要对用户隐藏,那么将这个字段加到 fieldsNeverRetrieve 中,即可保证用户永远不会看到这个字段。

永不返回字段的优先级高于返回字段,因此,如果你在前端指定需要返回一个字段,但又在 fieldsNeverRetrieve 设置中将这个字段设为永不返回时,这个字段的内容仍然不会被返回。

因此,对于较为敏感的信息或内容,可以设置到 fieldsNeverRetrieve 中,以保证其对用户不可见。

永不返回字段仅可以索引设置中设置,在后台的索引设置 - 返回字段中,即可找到。

友情链接更新日志© 2020, 卡拉搜索, Built with ❤️ in San Francisco + Beijing

京ICP备15049164号-3