实现类似于baidu的那种用空格键的分词查询
来源:互联网 发布:淘宝全屏固定背景代码 编辑:程序博客网 时间:2024/04/30 01:11
///
/// 实现类似于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 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
- WebService数据库操作
- Twitter 的架构扩展: 100 倍性能提升
- 如何恢复电脑右下角的Access Connections图标
- 提取HTML代码中文字的C#函数
- 面向站长和网站管理员的Web缓存加速指南[翻译]
- 实现类似于baidu的那种用空格键的分词查询
- 数据库通用操作
- STL第五课
- MySQL LIMIT 的性能问题
- linux高级工具命令(四)valgrind做内存检查
- 地铁线
- ASP.NET AJAX中Webservice调用方法示例
- SEO研究:大多数人使用2个或3个关键词进行搜索
- To Be by Your Side 归来的承诺