Span 查询

Span 查询提供了文本级的精细控制,允许对词项位置、距离、顺序等进行精确控制。Span 查询常用于法律文档搜索、学术文献检索、高级信息提取等场景。

特点 #

  • 词项级精细控制:可以精确控制词项间的距离、顺序、位置
  • 位置感知:基于词项在文本中的位置进行匹配
  • 高性能:内置缓存和优化,适合大规模查询
  • 可组合:支持嵌套和组合多个 span 查询

Span 查询类型 #

基础 Span 查询 #

查询说明
span_term单个词项的位置查询
span_multi_term多个词项的位置查询(支持通配符、前缀、范围)

组合 Span 查询 #

查询说明
span_near词项距离约束(距离 <= slop)
span_or多个 span 查询的或关系
span_not排除特定词项位置

位置约束 #

查询说明
span_first限制匹配位置在前 N 个词项内
span_containing匹配包含另一个 span 匹配的文本
span_within匹配被另一个 span 匹配包含的文本

高级 #

查询说明
span_field_masking跨字段查询(在一个字段中应用另一个字段的匹配)

推荐阅读顺序 #

  1. span_term:基础的 span 查询
  2. span_near:距离约束
  3. span_or:或逻辑
  4. span_not:否定
  5. span_first:位置限制
  6. span_containing / span_within:包含关系
  7. span_field_masking:跨字段应用

常见用途 #

场景使用 Span 查询
找出词项 A 和 B 在 5 词内出现的文档span_near with slop=5
找出不包含某词的匹配span_not
找出匹配出现在前 100 个词内span_first with end=100
找出包含特定短语的文档span_near