在ASP.NET网站运行开始时载入全局数据

在实现中文分词的过程中,利用ASP.NET网站展示的时候会涉及到一个问题就是:

  做网页端的时候,需要将分词词典预先载入内存,然后对用户的每一次查询都先进行分词处理,然后再提交数据库查询,这样能搜到更多的数据。
    向内存中载入词典大约需要2秒钟的时间,在服务器一直运行的时间只需载入一次,public void LoadWordandHash()函数负责载入,肯定不能是每次查询都得载入。另外基于ASP.NET的网站的web服务器是IIS7。
解决方法:
利用Global.asax文件
void Application_Start(object sender, EventArgs e) 
{
        //在应用程序启动时运行的代码
        WordDict my = new WordDict();
     //载入词典 my.LoadWordandHash(); }

其中WordDictHash是全局的静态哈希表变量 ,以后访问哈希表时就可以直接访问了

static public List<string> WordList = new List<string>();
static public Hashtable WordDictHash = new Hashtable();

这样在网站部署的时候只需要载入一次哈希词典,在网站的运行期间一直在内存中存在,供用户使用。

执行效果:

如图所示:用户提交查询字符串“中华人民共和国宪法”,服务器可以在很短的时间内进行中文分词,分割出“中华”“人民”“共和国”“宪法”

原文地址:https://www.cnblogs.com/lijingpeng/p/2473645.html