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"
                            }
                        }},
                    ]
                }
            }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章