• 全文检索(SOLR)前端应用浅析


    最近在一个关于知识管理系统中检索的一个功能方案,找到了一个很好的参考应用方案嘎要的分析一下,希望有类似应用的可以交流交流。

    提起全文检索,Lucene的大名估计地球人都知道,通过这么多年的发展,外围的应用是丰富多彩。Solr是在Lucene API的基础上提供了一个WEB形式的方案,Lucid的应用在Solr基础上围绕常见的企业应用进行了封装。

    基于Solr的应用前端如何体现

    http://www.lucidimagination.com/blog/2010/01/14/solr-search-user-interface-examples/

    这篇文章介绍了多种程序语言下实现的各种应用

    本文重点分析Lucid自带的ruby源代码实现的应用

    Lucid介绍

    http://www.lucidimagination.com/downloads 下载LucidWorks Enterprise 然后安装即可,完成可以浏览效果

    主题架构如下:

    clip_image002

    Solr核心是一部分,集成了LunceneSolr LWE-Core

    Lucid定制的增强和界面,提供了丰富的应用层参考,这部分代码使用RUBY写的,不过是运行于JRuby下的

    使用过程是先启动的Solr,然后启动的Lucid

    代码分析

    Examples下有C# Perl Python等的检索服务REST服务等调用参考,如果只是关注于Solr的使用应用可以只参考这部分即可

    lwe-core目录下是SOLR服务,使用是JSP编写,运行于Jetty容器中,这部分是大众都使用的,因此不用赘述

    Rails目录下是Lucid服务,使用的RUBY编写,搜索、报警、管理作为Plugin独立编写,使用是rails3.0.5,视图层采用的是ERB和HAML两种形式

    Ruby相对还说用户还是比较少,如果分析这个部分的内容,因此有一定的难度,以下是一些参:

    1、 Rails3相对2的改进比较大,一些命令进行了简化,因此对于这部分需要注意

    2、 视图层使用了HAML模板,因此需要了解一下,否则看到这样的视图还真是不明白;浏览器中界面使用的是jquery, jquery-ui等插件

    3、 这个程序默认使用的是sqlite3存储数据,而Jruby在Windows下运行这个有些问题,如果需要Jruby直接运行,可换成mysql

    4、 至于查看代码使用Netbeans就行,最好使用6的版本,7以后ROR不在直接集成[具体方法是新建一个ROR项目,把nbproject目录拷贝到这个项目目录下,即可用Netbeans打开]

    5、 分析这个项目时最好不要安装标准的RUBY版本,否则gem rake等命令前还需要输入jruby–S以便于区分Jruby和Ruby运行环境,很是麻烦

    Lucid应用的启动入口是:start "LucidWorks Rails" /B "%JVM%" -cp bin StartUtil start "%JVM%" 1>> ./logs/ruby-stdout.log 2>>./logs/ruby-stderr.log

    以上命令行实际上运行的是:[当前目录是rails]

    javaw "-Djava.awt.headless=true -Dlog4j.configuration=file:../conf/log4j.xml" -jar ../lib/jruby-complete-1.5.3.jar -r../lib/bundler.jar -S script/rails server -e production -p 8989

    其中bundler.jar是管理Gem包依赖的rb文件包

    jruby-complete-1.5.3.jar是Jruby解释环境,这个运行环境是承载到JRE中的,因此ruby可以JAVA之间相互调用

    Lucid应用效果界面参考

    包括了多种数据来源的索引、索引统计信息,检索增强等

    clip_image004

    clip_image006

    clip_image008

    clip_image010

    详细的内容可以参考安装包下的Docs中“LucidWorks Enterprise User Guide.pdf”,这个对整个的应用有详细的解释

    对于 更详细的内容,后续有时间再详细分析

  • 相关阅读:
    mysqlp批量替换的sql语句
    Paypal 支付功能的 C# .NET / JS 实现
    Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数
    WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决
    entity framework codefirst 用户代码未处理DataException,InnerException基础提供程序在open上失败,数据库生成失败
    《设计模式》一书中的23种设计模式
    C++程序实例唯一方案,窗口只打开一次,程序只打开一次
    重构——与设计模式的恋情
    重构——一个小例子
    C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
  • 原文地址:https://www.cnblogs.com/2018/p/2121519.html
Copyright © 2020-2023  润新知