{ "explain":true, "query": { "function_score": { "query": { "bool": { "must": [ { "match": { "module_type": "2" } } ] } }, "functions": [ { "filter": { "range": { "added_time": { "lt": "now-3d/d" } } }, "script_score": { "script": { "source": "doc['contect_person_count_7_ago'].value + doc['contect_count_7_ago'].value * 10 + 100" } } }, { "filter": { "range": { "added_time": { "gte": "now-3d/d" } } }, "script_score": { "script": { "source": "doc['contect_person_count_7_ago'].value + doc['contect_count_7_ago'].value * 10" } } } ], "score_mode": "sum", "boost_mode": "multiply" } }, "sort": [ { "_score": { "order": "desc" } } ] }
时间: 2024-01-16 20:39:50 浏览: 128
这是一个Elasticsearch的查询DSL,使用了function_score查询来对结果进行打分。查询的目的是找到module_type为2的文档,并对这些文档进行打分排序。打分的方式是通过两个functions来实现的,其中第一个function对添加时间在3天前的文档进行打分,公式是contect_person_count_7_ago + contect_count_7_ago * 10 + 100;第二个function对添加时间在3天内的文档进行打分,公式是contect_person_count_7_ago + contect_count_7_ago * 10。其中contect_person_count_7_ago和contect_count_7_ago是文档中的两个字段,表示7天前的联系人数和联系次数。打分的方式是将两个function的结果相加,再乘以原始的文档打分(默认为1)。排序方式是将结果按照打分从高到低排序。
阅读全文