zoukankan      html  css  js  c++  java
  • 初探站内搜索(上)

    最近在学习在内搜索,把这两天所学习的做个总结,温故而知新嘛,呵呵~~~因为本人是才疏学浅,必然有许多写的不好的地方,希望高手多多拍拍砖头~~~

    首先,先罗嗦几句。检索信息是我们通常使用的,比如百度,谷歌。当然站内搜索检索的信息量大,必然不同于平时我们数据库的检索像like等语句,普通数据库的检索要全表扫描,速度效率都太慢。在站内有几十万个帖子要检索的情况下用数据库来检索显然是不合适的。因此我们就需要用特定的方法或者工具来解决这个问题。

    这次实现的站内搜索是基于.net平台,因此做站内搜索准备以下工具,开发包:

    1.lucene.net:可以把它看成一个建立好索引的数据库我们把要查询的资料或者说是帖子全部扔进去,它内部自动生成索引提供给我们快速查询。lucene.net可以说是一个类库,它提供了几个重要的类,而这些类就是我们要用来建立索引以及检索的。所以它无非两个重要工作①建立索引②查询记录。

    2.log4net:Apache开源的应用于.Net框架的日志记录工具。

    3.quartz.net:开源的定时作业调度工具。

    4.PanGuDictionaries:盘古分词字典,包括一元或者多元分词算法。设置关键字高亮,检索文本的信息等。

    5.JQueryUI:关于JQuery我就不多说了,想必大家都知道它的强大。在这里使用到了jquery-ui-1.8.2.all(for jQuery 1.4+)这个工具可以从它的官方网站下载。

    6.vs2008+sql2005.

    准备好以上工具,接下来我们就可以来做开发了,

    打开vs2008新建一个WebApplication名称改为lucene,把上述工具的所有有关的dll,xml,pdb文件导入到新建的library文件夹下:

    把盘古分词的分词字典导入到自己新建的Dict文件夹下:(盘古分词的字典我们可以自己添加词汇和词类,在这里我就不说了)
    导入JQueryUI,文件如下:
     
    引入如上文件之后,添加dll引用到我们的项目中.
    建立一个Index文件夹来存放经过luence.net建立好索引的数据库。
    把PanGuDictionaries下的PanGu.xml导入到项目文件夹下修改<DictionaryPath>..\Dict</DictionaryPath>;
    打开web.config添加long4net配置如下:
    1 <configSections>
    2 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    3 </configSections>
    4 <log4net>
    5 <!-- Define some output appenders -->
    6 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    7 <file value="searchLog.txt"/>
    8 <appendToFile value="true"/>
    9 <maxSizeRollBackups value="10"/>
    10 <maximumFileSize value="100KB"/>
    11 <rollingStyle value="Size"/>
    12 <staticLogFileName value="true"/>
    13 <layout type="log4net.Layout.PatternLayout">
    14 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    15 </layout>
    16 </appender>
    17 <root>
    18 <level value="DEBUG"/>
    19 <appender-ref ref="RollingLogFileAppender"/>
    20 </root>
    21 </log4net>
    22  
    添加Global.asax文件,添加Index_Job.cs类,添加SearchSuggestion.ashx一般处理程序,添加StaIndex.aspx的web窗体,最后添加一个DAL数据访问文件(先建立好吧,后面我将会具体再写到它们用来干什么的)
    建立好的配置如下:
    先到一段落。。。
  • 相关阅读:
    结对编程
    个人项目(JUnit单元测试)
    我的第一个GitHub仓库
    Visual Studio 创建C++或C#Windows程序
    字符串操作
    练习数值计算
    Hello World
    ceph部署出现错误及解决
    asp.net mvc 用Redis实现分布式集群共享Session。
    Unable to load DLL 'rasapi32.dll': 动态链接库(DLL)初始化例程失败。
  • 原文地址:https://www.cnblogs.com/lys_013/p/1851923.html
Copyright © 2011-2022 走看看