zoukankan      html  css  js  c++  java
  • 修改网页排名

    很久以前就听说过“竞价排名”,今天基于TSE也写了一个自己理解的竞价排名雏形,满有意思的。

    现在必须手动加入排名靠前的url。

    要在CQuery模块中加入一个方法

     1 bool CQuery::Get_url_weight(set<string>& weight_set) const {
     2     ifstream ifs(Url_Weight_NAME.c_str(), ios::binary);
     3     if (!ifs) {
     4         cerr << "Cannot open " << Url_Weight_NAME << " for input\n";
     5         return false;
     6     }
     7     string strLine, strDocid, strUrl;
     8     while (getline(ifs, strLine)) {
     9         string fst;
    10         int idx = strLine.find("\t");
    11         fst=strLine.substr(0,idx);
    12         weight_set.insert(fst);
    13     }
    14     return true;
    15 }

    在TseSearch.cpp获取相关url集合后,加入下边这段代码,还有一些定义没有写出来,这个很容易搞定,就不贴出来了。

     1     //url-->weight
     2     set<string> weight_set,final_weight_set,tmp;
     3     final_weight_set.clear();
     4     tmp.clear();
     5     iQuery.Get_url_weight(weight_set);
     6     set_intersection (weight_set.begin(),weight_set.end(),
     7             setRelevantRst.begin(),setRelevantRst.end(),
     8             inserter(final_weight_set, final_weight_set.begin()));
     9 
    10     set_difference (setRelevantRst.begin(),setRelevantRst.end(),
    11             weight_set.begin(),weight_set.end(),
    12             inserter(tmp, tmp.begin()));
    13     setRelevantRst.clear();
    14     setRelevantRst=tmp;
    15     /////////////

    还有最后调用ShowBelow的时候,ShowBelow这个函数也要修改,我是加了一个参数

    iDisplayRst.ShowBelow(vecTerm,setRelevantRst,final_weight_set,vecDocIdx,iQuery.m_iStart);

    先对“竞价的”(final_weight_set)的输出,再对其他的(setRelevantRst)输出

    很容易实现的,我是直接把循环的代码复制一遍得到的,代码就不贴啦。

    吐槽一下,STL的algorithm真尼玛不好用。

  • 相关阅读:
    Java:类与继承(隐藏和覆盖的问题)
    Java中的static关键字解析
    面向对象(Java中普通代码块,构造代码块,静态代码块区别及代码示例)
    面向对象要点(this关键字)
    急须知道postman RSA加密的方式
    RSA加密原理
    postman获取变量
    Mysql通过cmd访问
    一个简单的postman实例
    sum(coalesce(adjust_value,prediction_value))
  • 原文地址:https://www.cnblogs.com/kakamilan/p/2646386.html
Copyright © 2011-2022 走看看