• 实现类似于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 中嵌入式休闲游戏,为开发者提供了全新的应用内游戏解决方案。
  • 相关阅读:
    为图片指定区域添加链接
    数值取值范围问题
    【leetcode】柱状图中最大的矩形(第二遍)
    【leetcode 33】搜索旋转排序数组(第二遍)
    【Educational Codeforces Round 81 (Rated for Div. 2) C】Obtain The String
    【Educational Codeforces Round 81 (Rated for Div. 2) B】Infinite Prefixes
    【Educational Codeforces Round 81 (Rated for Div. 2) A】Display The Number
    【Codeforces 716B】Complete the Word
    一个简陋的留言板
    HTML,CSS,JavaScript,AJAX,JSP,Servlet,JDBC,Structs,Spring,Hibernate,Xml等概念
  • 原文地址:https://www.cnblogs.com/yintian2/p/777282.html
Copyright © 2020-2023  润新知