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 中嵌入式休闲游戏,为开发者提供了全新的应用内游戏解决方案。
  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/yintian2/p/777282.html
Copyright © 2011-2022 走看看