Azure Cognitive Search检索PDF如何配置仅返回关键词匹配短文本片段
Azure Cognitive Search 返回检索词附近短片段配置方案
你不需要修改Blob存储的文件结构,也不需要额外拆分PDF文档,直接通过索引配置+查询参数调整就能实现需求,具体操作如下:
一、索引字段配置
- 找到索引中存储PDF解析后全文内容的字段(通常命名为
content),保留searchable=true属性,取消勾选retrievable属性,从配置上禁止接口默认返回完整的上百页文档内容。 - 其余需要返回的元数据字段(比如PDF文件名、Blob存储路径、上传时间等)正常保留
retrievable=true即可。
二、搜索请求参数配置
调用搜索接口时按以下规则传参,核心是通过命中高亮能力返回匹配位置的局部片段:
- 不要把存PDF全文的字段放到
$select参数中,$select只填写你需要返回的元数据字段名。 - 传入
highlight参数,值设置为存PDF全文的字段名,例如正文字段为content时传highlight=content。 - 传入
highlightMaxSentenceLength参数,根据你使用的语言调整数值:如果是英文文本,设置为30-40即可覆盖检索词前后共约5个词的长度;如果是中文文本设置为15-20即可,测试时如果返回片段偏长/偏短再微调数值。 - 可选配置
highlightPreTag和highlightPostTag参数,自定义包裹匹配检索词的标记,比如需要加粗匹配词就分别传<em>和</em>,不需要特殊标记传空字符串即可。 - 如果你开启了语义搜索能力,可以额外设置
captions=extractive、answers=none,把captionMaxLength调到最低档,返回的匹配片段精准度会更高。
三、效果说明
配置完成后检索关键词时,接口不会返回完整PDF内容,只会返回每个命中位置附近符合长度要求的短文本片段,比如检索"money"时就会返回你预期的*Money* bribe ..、*money* laundering ...这类短结果。如果需要调整片段长度,直接修改highlightMaxSentenceLength的数值即可,不需要重建索引。
内容的提问来源于stack exchange,提问作者Julius Francis
相关产品推荐
相关产品推荐

