什么是分词分词技术就是搜索引擎针对用户提交查询的关键词串进行的查询处理后根据用户的关键词串用各种匹配方法进行分词的一种技术。
利来w66(中国)有限公司讲网站建设分词今天利来w66(中国)有限公司来讲的分词,就是基
于Lucene+Analyzer分词
基本信息1、Lucene.NET.dll(在线下载)
2、PanGu.dll(在线下载)
3、PanGu.Lucene.Analyzer.dll(在线下载)
4、字典文件(dict文件)
将dll文件还有字典文件引入到asp.net项目中去
![](/editor/image/20170901/20170901090936_8738.png)
下面是分词过程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文件和字典