当前位置: 首页 > news >正文

【lucene】spancontainingquery

一句话:

SpanContainingQuery = “只保留那些完全包住给定 little 区间的 big 区间”。

public SpanContainingQuery(SpanQuery big, SpanQuery little)

big大区间 little小区间 这里的区间指的是区间里面词项包括

---

构造器原型  

```java

public SpanContainingQuery(SpanQuery big, SpanQuery little)

```

逻辑步骤  

1. 先列出 `big` 产生的所有区间(较长、较宽)。  

2. 再列出 `little` 产生的所有区间(较短、较窄)。  

3. 只保留那些 big 区间把某个 little 区间完全包住 的 big 区间;其余 big 区间全部扔掉。  

4. 最终返回的仍是 big 区间,但数量被裁剪过。

---

最小可运行示例

```java

// big: 任意 4-gram 的 "A B C D" 短语

SpanNearQuery big = new SpanNearQuery(

        new SpanQuery[]{

            new SpanTermQuery(new Term("f","a")),

            new SpanTermQuery(new Term("f","b")),

            new SpanTermQuery(new Term("f","c")),

            new SpanTermQuery(new Term("f","d"))

        }, 0, true);

 

// little: 中间的 "B C"

SpanNearQuery little = new SpanNearQuery(

        new SpanQuery[]{

            new SpanTermQuery(new Term("f","b")),

            new SpanTermQuery(new Term("f","c"))

        }, 0, true);

// 只保留那些完整包含 "B C" 的 "A B C D" 区间

SpanQuery query = new SpanContainingQuery(big, little);

```

---

常见用途  

- 限定“长短语”必须包含某个“子短语”后再做高亮或打分。  

- 规则检索:

  “找出所有 ‘verb + noun’ 的动词短语,但前提是这个短语必须出现在某个 ‘prep + verb + noun’ 结构里。”

一句话记忆

“只要外面的大括号包住里面的小括号,就留下这个大括号。”

http://www.dtcms.com/a/351760.html

相关文章:

  • 8月26日
  • 【QT学习之路】-Qt入门
  • 新型隐蔽恶意软件利用TP-Link、思科等路由器漏洞获取远程控制权
  • ZMC900E如何实现多主站协同控制?
  • 【typenum】 29 类型级别的数字数组标记特质(TypeArray)
  • 基于政策传导因子与就业脆弱性指数的鲍威尔9月降息决策分析
  • Prometheus 告警组件 Alertmanager 的使用并接入 Grafana
  • docker 安装nacos(vL2.5.0)
  • Android之讯飞语音合成和语音识别
  • React 代码规范
  • 算法练习-合并两个有序数组
  • 表格比对的实现
  • 如何确定哪些层应添加适配器(Adapter)?(58)
  • 餐中服务:藏在菜香里的 “情感传递术”
  • Java继承与虚方法详解
  • 掌握常用CSS样式:从基础到实战的全面指南
  • 从0开始学习Java+AI知识点总结-26.web实战(Springboot原理)
  • 产品经理成长手册(2)——产品文档能力
  • 14、RocketMQ生产环境如何优化
  • Linux查看服务器内存、磁盘、cpu、网络占用、端口占用情况
  • THM El Bandito
  • 设计模式学习笔记-----抽象责任链模式
  • 常见的设计模式
  • 深度学习篇---1*1卷积核的升维/降维
  • Unity笔记(七)——四元数、延迟函数、协同程序
  • 【Linux】Keepalived + Nginx高可用方案
  • [pilot智驾系统] 驾驶员监控守护进程(dmonitoringd)
  • 从代码学习深度强化学习 - 多智能体强化学习 IPPO PyTorch版
  • pytorch_grad_cam 库学习笔记——基类ActivationsAndGradient
  • vue2 和 vue3 生命周期的区别