深圳网站建设、深圳建网站、网站建设公司定制属于您的高端个性化网站!

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

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

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

利来w66(中国)有限公司网站建设分词
今天利来w66(中国)有限公司来讲的分词,就是基于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文件和字典

相关推荐

您值得信任的网站建设专家!

为其提供系统的基于互联网的品牌行销策略 、 创意执行 、 追踪运营服务 。