elasticsearch中的精准文本位置匹配

在elasticsearch中,将长篇幅的文档划分为树形结构的段落后,有助于文本的精准位置匹配,

例如:原来的content是这样的:


content = "一、大标题 \n 1. 一级标题 \n 1> 二级标题"

段落划分后,是如下这样:

content = {
    paras: [
        {
            "text": "大标题",
             "sub_paras": [
                     {
                         "text": "一级标题",
                         "sub_paras": [
                              {
                                  "text": "二级标题"
                                }
                          ]
                      }
              ]
        }
    ]
}



如果在查询时,只想定位到文字所在的段落,可以这样查询:


            "query": {
                "bool": {
                    "should": [
                        {"nested": {
                            "path": "content.paras",
                            "query": {
                                "term": {
                                    "content.paras.text": "哈哈"
                                }
                            },
                            "inner_hits": {
                                "name": "inner_hit_p"
                            }
                        }},
                        {"nested": {
                            "path": "content.paras.sub_paras",
                            "query": {
                                "term": {
                                    "content.paras.sub_paras.text": "哈哈"
                                }
                            },
                            "inner_hits": {
                                "name": "inner_hit_sub_p"
                            }
                        }},
                        {"nested": {
                            "path": "content.paras.sub_paras.sub_paras",
                            "query": {
                                "term": {
                                    "content.paras.sub_paras.sub_paras.text": "哈哈"
                                }
                            },
                            "inner_hits": {
                                "name": "inner_hit_sub_sub_p"
                            }
                        }},
                    ]
                }
            }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值