实现类似于baidu的那种用空格键的分词查询
来源:互联网 发布:大学生网络贷款案例 编辑:程序博客网 时间:2024/04/30 01:24
【全文】
///
/// 实现类似于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();
///
/// 实现类似于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();
}
- 实现类似于baidu的那种用空格键的分词查询
- 实现类似于baidu的那种用空格键的分词查询
- 实现类似于yahoo通讯录的查询
- Android画一个半圆的仪表盘,类似于实现流量监控的那种 ,有没有大神做过的?底部图片用画的,不要图片、
- android仪表盘,柱形图,折线图,类似于监控网速的那种
- 实现类似于google,baidu的搜索提示功能,带有上下键选择功能
- MongoDB中实现类似于SQL的like查询
- MongoDB中实现类似于SQL的like查询
- 详细图解:在新浪服务器上开淘宝客的步骤(类似于美丽说的那种)
- 关于数组输入--类似于C那种动态分配数组内存的JAVA解决
- 如何实现那种流行的平面按钮
- 空格键实现对flv播放器的控制
- 类似于printf的lcd_debug实现
- Baidu分词算法分析(转 中科院牛人写的)
- Baidu分词算法分析(转 中科院牛人写的)
- SQL巧用逗号分隔的字符串实现类似于 where field in (a,b,c,d)的查询
- 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
- python练习 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
- 在MFC程序中显示JPG/GIF图像
- 天气预报代码调用大全
- .net 未来的一个应用模式
- C++的auto_ptr
- [C#]练习了下数组和类,C++ 基础还算可以,不是很吃力
- 实现类似于baidu的那种用空格键的分词查询
- CreateCompatibleDC
- 加密webconfig的信息
- 5.8 volumetric post-processing--game programming gems5 笔记
- Fedora: Compile your own kernel
- 代码示例:在多个UpdatePannel使用AJAX.NET TIMER控件
- Monkey黑白棋(C#源代码)!
- [C#]写个记事本作为 Windows 程序的练习,这个是雏形
- DIV拖动实例