• Sorl搜索技术


      在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一高级的搜索需求,比如:搜索速度要快、搜索结果按相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。

    检索技术

      项目中的检索技术主要有三种方式实现:

    1、单独使用Lucene实现
      单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引性能优化、搜索性能优化等,因此不建议采用。
    2、使用Google或Baidu接口
      通过第三方搜索引擎提供的接口实现站内搜索,这样和第三方引擎系统依赖紧密,不方便扩展,不建议采用。
    3、使用Solr实现
      基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为Solr提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。

      solr需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty。下载好了就可以直接启动了。

    Solr命令

      solr的启动、停止、查看命令: 
      1. 启动:binsolr.cmd start 
      2. 停止:binsolr.cmd stop 或binsolr.cmd stop -all 
      3. 查看:binsolr.cmd status

      我下载的是7.7.1版本的,不知为什么,solr.cmd总是执行显示SET was unexpected at this time错误,于是换回4.10.3了还是不行,果断放弃windows平台运行solr,使用linux,一键运行成功,还是linux更open啊。

    solr目录结构

      一下内容针对solr4.10.3版本,和最新版本有很大出入。

      创建一个Solrhome目录,目录中包括了运行Solr实例所有的配置文件和数据文件,SolrHome是Solr运行的主目录,一个SolrHome可以包括多个SolrCore(Solr实例),每个SolrCore提供单独的搜索和索引服务。

    上图中“collection1”是一个SolrCore(Solr实例)目录 ,目录内容如下所示:

    注解:

      collection1:叫做一个Solr运行实例SolrCore,SolrCore名称不固定,一个solr运行实例对外单独提供索引和搜索接口。
      solrHome中可以创建多个solr运行实例SolrCore。一个solr的运行实例对应一个索引目录。
      conf是SolrCore的配置文件目录 。

    Solr基本使用

    当我们启动了solr之后,访问其web路径,可以看到solr控制面板,我们来研究一下它的菜单。

    1、Dashboard:仪表盘,显示了该Solr实例开始启动运行的时间、版本、系统资源、jvm等信息。
    2、Logging:Solr运行日志信息。
    3、Cloud:Cloud即SolrCloud,即Solr云(集群),仅当使用SolrCloud模式运行时会显示此菜单。
    4、Core Admin:Solr Core的管理界面。Solr Core是Solr的一个独立运行实例单位,它可以对外提供索引和搜索服务,一个Solr工程可以运行多个SolrCore(Solr实例),一个Core对应一个索引目录。
    5、java properties:Solr在JVM运行环境中的属性信息,包括类路径、文件编码、jvm内存设置等信息。
    6、Tread Dump:显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。
    7、Core selector:选择一个SolrCore进行详细操作。

    当我们选择了一个core后

    1、Overview:总览

    2、Analysis:通过此界面可以测试索引分析器和搜索分析器的执行情况。

    3、DataImport:可以定义数据导入处理器,从关系数据库将数据导入 到Solr索引库中。

    4、Documents:通过此菜单可以创建索引、更新索引、删除索引等操作。

    5、Files:Solr相关文件。

    6、Ping:测试到solr服务器的网络速度。

    7、Plugins/stats:插件及其状态。

    8、Query:通过/select执行搜索索引,必须指定“q”查询条件方可搜索。

    9、Replication:主从复制功能。

    10、SchemaBrowser:浏览匹配方案。

  • 相关阅读:
    WPF快速指导10:WPF中的事件及冒泡事件和隧道事件(预览事件)的区别
    改善C#程序的建议1:非用ICloneable不可的理由
    WPF快速指导5:验证
    改善C#程序的建议4:C#中标准Dispose模式的实现
    我所入选的微软技术社区电子报
    C#中new, override, virtual的具体用法
    C#中FCL迭代器模式的一点问题
    WPF快速指导3:数据绑定
    WPF快速指导2:模板
    C#高效编程话题集2(每期10话题)
  • 原文地址:https://www.cnblogs.com/guanghe/p/10477808.html
Copyright © 2020-2023  润新知