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 中嵌入式休闲游戏,为开发者提供了全新的应用内游戏解决方案。
  • 相关阅读:
    2020寒假简记
    感知神经网络模型与学习算法
    信息检索模型与评估
    Diffie-Hellman密钥交换
    RSA密码体制
    MySQL基准测试(benchmark)
    MySQL数据引擎
    MySQL 多版本并发控制(MVCC)
    MySQL事务管理
    利用dotnet restore 导入本地 .nupkg 包
  • 原文地址:https://www.cnblogs.com/yintian2/p/777282.html
Copyright © 2011-2022 走看看