深圳网站建设、响应式网站建设、微网站建设定制属于您的高端视觉网站!

搜索深圳网站建设相关案例及相关信息 服务热线:13530005572/15112579390
深圳网站建设-独占网络-广告图
首页 > 网站建设知识 > asp.net网站建设中的搜索分词功能详解

asp.net网站建设中的搜索分词功能详解

  • 所属分类:网站建设知识
  • 作者: 独占网络
  • 更新时间: 2017-9-1 9:07:41
  • 返回列表
什么是分词
分词技术就是搜索引擎针对用户提交查询的关键词串进行的查询处理后根据用户的关键词串用各种匹配方法进行分词的一种技术。

独占网络网站建设分词
今天独占网络来讲的分词,就是基于Lucene+Analyzer分词

基本信息
1、Lucene.NET.dll(在线下载)
2、PanGu.dll(在线下载)
3、PanGu.Lucene.Analyzer.dll(在线下载)
4、字典文件(dict文件)
将dll文件还有字典文件引入到asp.net项目中去




下面是分词过程
ArrayList con = new ArrayList();
//判断信息是否存在
if (!string.IsNullOrEmpty(keyword))
{
    //判断是否存在非法信息
    if (Fangfa.StringFangFa.ProcessSqlStr(keyword))
    {
 
        Analyzer anal = new PanGuAnalyzer();//使用盘古分词
        StringReader keywords = new StringReader(keyword);
        TokenStream ts = anal.ReusableTokenStream("", keywords);
        Token t = null;
        //循环得到分词的信息
        while ((t = ts.Next()) != null)
        {
            con.Add(t.TermText());
        }

    }
    else
    {

        keyword = string.Empty;

    }

}

最后就是分词搜索代码
StringBuilder strSql = new StringBuilder();

strSql.Append("select top 100 *  from tablename"); 
if (strWhere.Trim() != "")
{
    strSql.Append(" where " + strWhere);
}
string newsql = string.Empty;
if (con.Count > 0)
{

    for (int i = 0; i < con.Count; i++)
    {

        if (!string.IsNullOrEmpty(newsql))
        {

            newsql += " or ";

        }

        newsql += " subject like @keyword" + i + "  ";

    }

}

SqlParameter[] parameters = new SqlParameter[con.Count]; ;

if (con.Count > 0)
{
    for (int i = 0; i < con.Count; i++)
    {
        parameters[i] = new SqlParameter("@keyword" + i, SqlDbType.NVarChar, 255);
        parameters[i].Value = "%" + con[i].ToString() + "%";
    }
}

strSql.Append(" order by " + filedOrder);

通过上面的几步方法我们就可以完成一个基本的asp.net网站建设分词效果,全站搜引的功能就等下一课来讲。
下面有一个网上盘古分词的例子,大家可以直接在里面找到.dll文件和字典
http://download.csdn.net/detail/lijun7788/4412762

相关推荐