文档目录
从这里开始
优化搜索结果
如何优化搜索结果设置可搜索字段排序器设置搜索结果分页搜索结果过滤结果高亮调整索引高亮设置高亮结果标签高亮结果摘要哪些字段适合高亮高亮字段高亮搜索结果示例返回字段设置

结果高亮

在展示搜索结果的时候,用户希望可以一目了解地看到搜索词匹配上的对象。不管是在 Google 还是百度等现代搜索引擎中,搜索高亮都成了标准配置。而智能地显示结果高亮和摘要,对于提升用户体验和转化有非常重要的作用。

比如说,如果用户搜索关于 iPhone 的文章,那么在标题或摘要中显示 iPhone 并且用高亮色表示出来,将会极大地提升用户体验。用户搜索时如果结果更容易找到和视觉上发现,则更有可能点击和转化。比如说,下图是在 Google 搜索 最快 手机 时出现的高亮的例子

highlight-example

在卡拉搜索中,我们提供 highlightFields 搜索选项用来高亮查询词在字段中的结果。你只需要在后台添加几个最基本的配置,就可以为你的用户提供极致的结果高亮。

调整索引高亮设置

默认情况下,引擎的搜索返回结果中不含高亮。如果需要结果高亮的话,需要到卡拉搜索后台,指定需要高亮的字段和展示的方式即可。

在后台为索引调整高亮设置时,仅需指定你要高亮的字段,和需要的高亮结果标签(作用请参考下一节)。如果在索引中设置了高亮字段,默认对所有的搜索请求,服务器都会返回设置的高亮结果。比如说,如需将字段 titlesummary 设置为高亮字段,我们只需要在对应的索引设置中,将title标题和summary摘要字段添加到高亮字段列表中。

高亮结果标签

高亮的结果会将对应字段的被高亮部分,用 HTML 标签或是其它你设置的标签强调出来。比如说,如果你的字段是 大话西游,用户搜索 大话 时,默认即会返回

<strong>大话</strong>西游

其中,<strong> 是 HTML 里的加粗强调标签。

对于 iOS,安卓端或小程序,你可以在卡拉搜索后台为索引定制对应的标签以实现高亮显示。甚至如果你需要在高亮时动态调整 CSS 式样,比如高亮颜色,也可以将其 CSS 类名指定在标签中。

高亮结果摘要

在返回高亮结果时,如果有大于 3 个句子含有搜索词,卡拉引擎会智能地从整个字段中挑选三句最有代表性的句子。同时保持这几个句子间的顺序,以保证可读性。如果字段未匹配任何搜索词,那么引擎会用该字段的前 3 个句子作为摘要。

哪些字段适合高亮

通常我们建议,将一些摘要性的字段作为高亮结果。比如说

  • 标题或商品名称
  • 描述商品或文章的摘要
  • 简短的说明文字

对于正文或长篇文字,特别是关键词出现频率较高的情况下,高亮可能会让用户失去焦点,从而影响搜索体验。因此,如果需要全文高亮,我们建议仅摘取其中一小部分(通常是开头)来进行高亮。

高亮字段

请注意,要使一个高亮字段生效,这个字段需要同时满足两个条件

  1. 高亮的字段是字符串类型:数字、布尔变量等无法高亮
  2. 字段在对象中的确存在

只有同时满足了两个条件,API 才会返回高亮结果。

高亮搜索结果示例

在搜索结果的 hits 字段中,如果有设置高亮字段,则会在 hits.highlights.${fieldName} 中出现。在下面的示例中,用户搜索 大话,结果中,字段 summarytitle 均被设置为需要高亮。

每个返回的高亮字段中含有两个值

  • snippet : 即被高亮的字段,高亮部分被设置的高亮标签标出
  • hasMatch : 布尔变量,表明该字段中是否有匹配关键字的高亮出现

在下面的例子中,字段 summary 中没有匹配搜索词 大话,而标题 title 中,则含有匹配

{
"totalHits": 1,
"hits": [
{
"id": "n_u-QXQBFAjd3marbeiR",
"source": {
"title": "大话西游",
"summary": "一部周星驰主演的爱情喜剧片"
},
"highlights": {
"summary": {
"snippet": "一部周星驰主演的爱情喜剧片",
"hasMatch": false
},
"title": {
"snippet": "<strong>大话</strong>西游",
"hasMatch": true
}
}
}
],
"queryTimeUsed": 0
}
友情链接更新日志© 2021, 卡拉搜索, Built with ❤️ in San Francisco + Beijing

京ICP备15049164号-3