zoukankan      html  css  js  c++  java
  • 实现类似于baidu的那种用空格键的分词查询

    【全文】
     ///
      /// 实现类似于baidu的那种用空格键的分词查询
      ///
      /// 要查询表的字段集合
      /// 要查询的表名
      /// 查询的关键字
      /// 查询的模式
      /// 具体的查询语句
      private string GetSearchWord(string[] tableField ,string tableName ,string strKeyword ,string strSearchMode)
      {
       StringBuilder strCondition = new StringBuilder();
       string [] KeywordArray;
       string strTemp = "";
                strCondition.Append("SELECT ");
       string strWhere ="";
       // 获得要查询表的字段名称
       foreach(string sqlField in tableField)
       {
        strWhere += sqlField + "," ;
       }
       strWhere = strWhere.TrimEnd(new char[]{','});
       strCondition.Append(strWhere + " FROM "+tableName+" WHERE ");
       
       if(strKeyword.IndexOf(',')!=-1)
        KeywordArray=strKeyword.Split(',');
       else
        if(strKeyword.IndexOf('|')!=-1)
        KeywordArray=strKeyword.Split('|');
       else
        KeywordArray=strKeyword.Split(null);
       // 完全匹配模式
       if(strSearchMode == "1")
       {
         strWhere="";
        foreach(string sqlField in tableField)
        {
          strWhere += sqlField + "+";
        }
        strWhere=strWhere.TrimEnd(new char[] {'+'});
        strTemp += strWhere + " like '%"+strKeyword+"%'";
       }
       else
       {
        // 部分匹配模式
        if(strSearchMode=="2")
        {
         strWhere = "";
         foreach(string sqlField in tableField)
         {
          strWhere += sqlField + "+";
         }
         strWhere=strWhere.TrimEnd(new char[] {'+'});
         strTemp += strWhere + " like '";
         strWhere="";
         for (int i=0;i     {
          strWhere+="%"+KeywordArray[i];
         }
         strTemp+=strWhere +"%'";
        }
        // 单词匹配模式
        if(strSearchMode=="3")
        {
         strWhere="";
         foreach(string sqlField in tableField)
         {
          strWhere +=" "+ sqlField + "+";
         }
         strWhere=strWhere.TrimEnd(new char[] {'+'});
      
         string strSqlKeyword="";
         for (int i=0;i     {
          strSqlKeyword+=strWhere+" like" +" '%"+KeywordArray[i]+"%' or";
         }
         strSqlKeyword=strSqlKeyword.TrimEnd(new char[] {'o','r'});
         strTemp +=strSqlKeyword;
        } 
       }
       return strCondition.Append(strTemp).ToString();

      }

    噢耶游戏是中国最大的轻社交游戏开发商,致力于手机页游的研发及推广业务。我们首创性地提出了HTML5游戏中心思路,在第三方App 中嵌入式休闲游戏,为开发者提供了全新的应用内游戏解决方案。
  • 相关阅读:
    浅谈css中的盒模型(框模型)
    Linux 字符设备驱动及一些简单的Linux知识
    java实现person类 override(重写) comparable接口
    java之内部类
    mac下sublime text3 安装px转rem插件
    python pip安装扩展报错
    curl http_code 状态码
    sed 批量替换文件
    centos 7 开机优化shell
    一个tcp连接可以发多少http请求
  • 原文地址:https://www.cnblogs.com/yintian2/p/777282.html
Copyright © 2011-2022 走看看