如何在四级标题下搜索多个关键词交集?

本贴最后更新于 225 天前,其中的信息可能已经时过境迁

我亟需在四级标题下搜索多个关键词交集的办法,能教我吗?

4.2.4 为 4 级标题,内容如下:

4.2.4

下列场所应采用耐火极限不低于 2h 的隔墙和 1.5h 的楼板与其他场所隔开,并应符合下列规定:

1

消防控制室、消防水泵房、排烟机房、灭火剂储瓶室、变配电室、通信机房、通风和空调机房、可燃物存放量平均值超过 30kg/㎡ 火灾荷载密度的房间等,墙上应设置常闭的甲级防火门;

2

柴油发电机房的储油间,墙上应设置常闭的甲级防火门,并应设置高 150mm 的不燃烧、不渗漏的门槛,地面不得设置地漏;

3

同一防火分区内厨房、食品加工等用火用电用气场所,墙上应设置不低于乙级的防火门,人员频繁出入的防火门应设置火灾时能自动关闭的常开式防火门;

4

歌舞娱乐放映游艺场所,且一个厅、室的建筑面积不应大于 200㎡,隔墙上应设置不低于乙级的防火门。

我要找出含有耐火极限、消防水泵房、乙级的防火门的所有四级标题。如何实现?

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23020 引用 • 92599 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • yalidabuda

    有一说一,没看明白 😂

  • 下载并使用“基于文档搜索”这个插件就行了。

    image.png

    1 回复
  • qiancang 1 1 赞同

    你这个需求还是有点麻烦的:

    with recursive head(headid,id,parent_id,type,content) as (
    select id,id,parent_id,type,content from blocks where subtype = 'h4'
    union
    select h.headid,b.id,b.parent_id,b.type,b.content from blocks b join head h on b.parent_id = h.id where h.type not in ('l','b')
    )
    select * from blocks where id in(
    select headid from 
    (select *,group_concat(content) as headcontent from head group by headid having 
        headcontent like '%耐火极限%' 
        and headcontent like '%消防水泵房%' 
        and headcontent like '%乙级的防火门%' 
    )
    )
    
    2 回复
  • xjtcnj
    作者

    reader:谢谢!你的办法是这三个词的并集。

  • xjtcnj
    作者

    qiancang:非常感谢!

  • xjtcnj
    作者

    我如何把它控制在规范内?1715423948911.png

    1 回复
  • qiancang 2 1 赞同

    两种方法。

    第一种无脑粘贴,但是不够精确:

    with recursive head(headid,id,parent_id,type,content) as (
    select id,id,parent_id,type,content from blocks where subtype = 'h4' and hpath like '%规范%'
    union
    select h.headid,b.id,b.parent_id,b.type,b.content from blocks b join head h on b.parent_id = h.id where h.type not in ('l','b')
    )
    select * from blocks where id in(
    select headid from 
    (select *,group_concat(content) as headcontent from head group by headid having 
        headcontent like '%耐火极限%' 
        and headcontent like '%消防水泵房%' 
        and headcontent like '%乙级的防火门%' 
    )
    )
    

    第二种是精确的,需要复制《规范》这个文档的 id 替换到查询语句中:

    with recursive head(headid,id,parent_id,type,content) as (
    select id,id,parent_id,type,content from blocks where subtype = 'h4' 
      and hpath like (select hpath from blocks where id = '规范文档的id')||'%'
    union
    select h.headid,b.id,b.parent_id,b.type,b.content from blocks b join head h on b.parent_id = h.id where h.type not in ('l','b')
    )
    select * from blocks where id in(
    select headid from 
    (select *,group_concat(content) as headcontent from head group by headid having 
        headcontent like '%耐火极限%' 
        and headcontent like '%消防水泵房%' 
        and headcontent like '%乙级的防火门%' 
    )
    )
    
    2 回复
  • xjtcnj
    作者

    😂 谢谢!

  • xjtcnj
    作者

    第一种简单,确有不精确情况。第二种未出现问题,但有点麻烦。希望你能把他做成带界面的搜索插件(这样使用更方便),最好能集成到思源笔记的 Ctrl+P 命令中。

请输入回帖内容 ...