建立索引和數據準備app
PUT course PUT course/_mapping/course { "properties": { "course":{ "type": "nested" , "properties": { "key1": { "type": "text", "analyzer": "ik_max_word" }, "key2": { "type": "text", "analyzer": "ik_max_word" }, "course_score": { "type": "long" } } }, "course_name": { "type": "text" , "analyzer": "ik_max_word" }, "course_id": { "type": "long" } } } PUT course/course/1 { "course":[ { "key1":"語文,高一,高二,高三", "key2":"高考做文", "course_score":15 }, { "key1":",語文,高二", "key2":"語文高考", "course_score":9 }, { "key1":",努力,學習", "key2":"高考", "course_score":9 } ], "course_name":"語文高考基礎題滿分策略", "course_id":13 } PUT course/course/2 { "course":[ { "key1":",其餘,高一,高二,高三", "key2":"魯林希", "course_score":21 }, { "key1":",其餘,高一", "key2":"高考", "course_score":11 }, { "key1":",其餘,高二,高三", "key2":"高考", "course_score":2 } ], "course_name":"師兄師姐來幫忙-方法篇", "course_id":220 } PUT course/course/3 { "course":[ { "key1":",其餘,高一,高三", "key2":"高考", "course_score":21 } ], "course_name":"師兄師姐來幫忙-自招全流程", "course_id":221 }
查詢語句實例學習
GET course/course/_search { "query": { "function_score": { "query": { "bool": { "must": [ { "nested": { "path": "course", "score_mode": "sum", "query": { "function_score": { "query": { "bool": { "must": [ { "match": { "course.key1": "高一,高二,高三" } }, { "match": { "course.key2": "高考" } } ] } }, "script_score": { "script": "doc['course.course_score'].value" } } } } } ] } } , "script_score": { "script": "_score" } } } }