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

提起全文检索,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 然后安装即可,完成可以浏览效果

主题架构如下:

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应用效果界面参考

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

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

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

全文检索(SOLR)前端应用浅析 (转)的更多相关文章

  1. web前端开发浅析

    原文地址:http://www.cnblogs.com/babyzone2004/articles/1807381.html 摘 要:前端开发作为一项新的领域,经历的时间随然较短,却显示了强大的生命里 ...

  2. 全文检索 -- Solr从概念到实战(一)

    全文检索: 将整个文本进行“分词”处理,在索引库中为分词得到的每一个词都建立索引,和用户搜索的关键词进行匹配.实现快速查找效果. 传统sql语句实现的局限性: select song_id,song_ ...

  3. 全文检索~solr的使用

    全文检索这个系列在几前年写过lucene的文章,而现在看来它确实已经老了,它的儿子孙子都出来了,已经成为现在检索行列的主流,像solr,elasticsearch等,今天我们主要来看一个solr在as ...

  4. 全文检索Solr集成HanLP中文分词

    以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...

  5. 全文检索Solr集成HanLP中文分词【转】

    以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...

  6. NoSQL:如何使用NoSQL架构构建实时广告系统

    JDNoSQL平台是什么 JDNoSQL平台是一个分布式面向列的KeyValue毫秒级存储服务,存储结构化数据和非机构化数据,支持随机读写与更新,灵活的动态列机制,架构上支持水平扩容,提供高并发.低延 ...

  7. 一个简单的Redis结合Spring MVC架构以及实现过程

    为了加快开发人员对公司项目的理解.更加容易入手和对公司项目的整体把控. 整体框架 首先介绍公司项目的整体框架,闲话少说,直接上图 整体性能分析 这就是公司的一个整体的架构,为了开发人员对架构的侧重点的 ...

  8. 【面试经验分享】java面试中的那些潜规则

    1.大纲 潜规则1:面试的本质不是考试,而是告诉面试官你会做什么 很多刚入行的小伙伴特别容易犯的一个错误,不清楚面试官到底想问什么,其实整个面试中面试官并没有想难道你的意思,只是想通过提问的方式来知道 ...

  9. 全文检索引擎 Solr 部署与基本原理

    全文检索引擎 Solr 部署与基本原理 搜索引擎Solr环境搭建实例 关于 solr , schema.xml 的配置说明 全文检索引擎Solr系列-–全文检索基本原理 一.搜索引擎Solr环境搭建实 ...

随机推荐

  1. [ 转载 ] Java中成员变量 和局部变量

    java语言支持的变量类型 类变量:独立于方法之外的变量,用 static 修饰. 局部变量:类的方法中的变量. 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰. publi ...

  2. Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) B. Verse Pattern 水题

    B. Verse Pattern 题目连接: http://codeforces.com/contest/722/problem/B Description You are given a text ...

  3. 深入理解webpack

    什么是Webpack WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并 ...

  4. $.ajax 方法参数总是记不住,在这里记录一下

    jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...

  5. 10 个理由让你继续干 IT

    1.钱,钱,钱 对,我们努力工作就是为了赚钱,而IT专业人士的努力工作的确得到了很好的补偿.报酬不仅仅是好而已,而是非常棒.根据美国劳工部<2010年美国 就业与报酬情况概览>(表6,PD ...

  6. ARM汇编编程基础之一 —— 寄存器

    ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以我们首先要弄清楚ARM有哪些寄存器?这些寄存器都是如何使用的? ARM寄存器分为2类,普通寄存器和状态寄存器 寄存器类别 寄存器在汇编中的名称 ...

  7. Consul功能简介

    Consul 是 HashiCorp 公司的一个用于实现分布式系统的服务发现与配置工具.Consul内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value存储.多数据中心方案.由 ...

  8. JS本地存储信息的实现方式(localStorage 与 userData)

    详细介绍请看: http://www.cnblogs.com/beiyuu/archive/2011/07/20/js-localstorage-userdata.html 里面涉及到的 demo 代 ...

  9. 恶意软件正在利用SSLserver窃取用户个人信息!

    安全套接层协议(SSL)及安全传输层协议(TLS)旨在提供一个安全.加密的client和server之间的连接网络.为进一步进行身份验证和加密,server必须提供证书,从而直接有效地证明其身份. 使 ...

  10. iReport数据库连接找不到驱动