高亮查询
提示
高亮字段通过自定义注解@HighLight即可实现,将该注解添加在需要被高亮的字段上即可
# @HighLight (opens new window)
- 描述:高亮注解
- 使用位置:实体类中需要高亮的被查询字段
- 使用场景举例:比如输入关键词"老汉"进行查询,期望内容中包含"老汉"的部分被展示为红色或加粗
属性 | 类型 | 必须指定 | 默认值 | 描述 |
---|---|---|---|---|
mappingField | String | 否 | "" | 高亮内容映射字段的名称,比如我想把高亮内容"老汉"赋值到字段pushCar上,就可以指定此属性值为pushCar |
fragmentSize | int | 否 | 100 | 高亮字段截取长度,默认为100 |
numberOfFragments | int | 否 | -1 | 搜索返回的高亮片段数量,默认全部返回 |
preTag | String | 否 | < em > | 高亮标签,高亮内容将处于preTag之后 |
postTag | String | 否 | < /em > | 高亮标签,高亮内容将处于postTag之前 |
highLightType | HighLightTypeEnum | 否 | UNIFIED | 高亮类型 |
requireFieldMatch | boolean | 否 | true | 高亮内容是否需要与查询字段匹配,默认值为true,当为否时,命中内容中非查询字段包含高亮内容时也会被高亮 |
提示
HighLightTypeEnum
- UNIFIED: 通用高亮策略,缺省配置时,默认采用此策略. 此高亮策略将文本分解成句子,并使用BM25算法对单个句子进行评分,支持精确的短语和多术语(模糊、前缀、正则表达式)突出显示.
- PLAIN: 普通高亮策略,其使用的是Lucene的standard Lucene highlighter
- FVH: Fast vector highlighter(快速向量策略)
# 注解使用示例
public class Document{
/**
* 需要被高亮的字段
*/
@HighLight
private String content;
// 省略其它无关字段...
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
温馨提示
如果你不想原来的字段值被高亮字段覆盖,那么你需要在@HighLight注解中指定mappingField,并将该字段添加至对应实体类中,这样配置以后,高亮内容在highlightContent字段中返回,原content字段的值依旧返回它本身的值.
例如:
public class Document{
/**
* 需要被高亮的字段
*/
@HighLight(mappingField = "highlightContent")
private String content;
/**
* 高亮返回值被映射的字段
*/
private String highlightContent;
// 省略其它无关字段...
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
其它
- 高亮注解支持设置高亮返回内容截取的长度fragmentSize,默认值为100
- 高亮注解支持设置高亮内容的标签,默认为标签 em
帮助我们改善此文档 (opens new window)
上次更新: 2024/05/18