大佬们我有一个问题 我如何在es中使用概率搜索?就是前10个数据中A部分数据百分之10,B部分百分之20,C部分百分之70,然后每一次分页查询都基本满足这个概率即可,
目前使用了function_score 达到了这样得排序结果,就是0到100是C部分数据,100-200是B部分数据,200往后是C部分数据,有点不对。。。所以想请教一下大佬
 
																				目前使用了function_score 达到了这样得排序结果,就是0到100是C部分数据,100-200是B部分数据,200往后是C部分数据,有点不对。。。所以想请教一下大佬
{
  "query" : {
    "function_score" : {
      "query" : {
        "bool" : {
          "must" : [
            {
              "exists" : {
                "field" : "title",
                "boost" : 1.0
              }
            },
            {
              "exists" : {
                "field" : "content",
                "boost" : 1.0
              }
            },
            {
              "term" : {
                "recommend" : {
                  "value" : 1,
                  "boost" : 1.0
                }
              }
            }
          ],
          "disable_coord" : false,
          "adjust_pure_negative" : true,
          "boost" : 1.0
        }
      },
      "functions" : [
        {
          "filter" : {
            "range" : {
              "ptime" : {
                "from" : 1541906309251,
                "to" : null,
                "include_lower" : true,
                "include_upper" : true,
                "boost" : 1.0
              }
            }
          },
          "weight" : 1.0
        },
        {
          "filter" : {
            "range" : {
              "ptime" : {
                "from" : 1536635909254,
                "to" : 1541906309254,
                "include_lower" : true,
                "include_upper" : false,
                "boost" : 1.0
              }
            }
          },
          "weight" : 1.0
        },
        {
          "filter" : {
            "range" : {
              "ptime" : {
                "from" : 1528687109254,
                "to" : 1536635909254,
                "include_lower" : true,
                "include_upper" : false,
                "boost" : 1.0
              }
            }
          },
          "weight" : 1.0
        },
        {
          "filter" : {
            "range" : {
              "ptime" : {
                "from" : 1512962309254,
                "to" : 1528687109254,
                "include_lower" : true,
                "include_upper" : false,
                "boost" : 1.0
              }
            }
          },
          "weight" : 1.0
        },
        {
          "filter" : {
            "range" : {
              "ptime" : {
                "from" : null,
                "to" : 1512962309254,
                "include_lower" : true,
                "include_upper" : true,
                "boost" : 1.0
              }
            }
          },
          "weight" : 1.0
        }
      ],
      "score_mode" : "sum",
      "boost_mode" : "multiply",
      "boost" : 1.0
    }
  },
  "size": 8071
}
															
	
2 个回复
401825317 - 90后it男
赞同来自:
medcl - 今晚打老虎。
赞同来自: