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

提起全文检索,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. POJ3070 Fibonacci[矩阵乘法]【学习笔记】

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13677   Accepted: 9697 Descri ...

  2. [Android]对BaseAdapter中ViewHolder编写简化(转)

    来自博客:http://www.cnblogs.com/tiantianbyconan/p/3642849.html 在Android项目中,经常都会用到ListView这个控件,而相应的Adapte ...

  3. [USACO06JAN]Redundant Paths

    OJ题号:洛谷2860.POJ3177 题目大意: 给定一个无向图,试添加最少的边使得原图中没有桥. 思路: Tarjan缩点,然后统计度为$1$的连通分量的个数(找出原图中所有的桥). 考虑给它们每 ...

  4. 实现常用的配置文件/初始化文件读取的一个C程序

    在编程中,我们经常会遇到一些配置文件或初始化文件.这些文件通常后缀名为.ini或者.conf,可以直接用记事本打开.里面会存储一些程序参数,在程序中直接读取使用.例如,计算机与服务器通信,服务器的ip ...

  5. BZOJ2832 : 宅男小C

    首先将所有显然不在最优解中的外卖都删去,那么剩下的外卖价格越低,保质期也最短. 考虑三分订外卖的次数,然后贪心求解,每次尽量平均的时候可以做到最优化. 三分的时候,以存活天数为第一关键字,剩余钱数为第 ...

  6. JTAG Simplified

    JTAG Simplified So the other day, I explored the JTAG bus interface which is frequently found in CPL ...

  7. STM32 microcontroller system memory boot mode

    The bootloader is stored in the internal boot ROM memory (system memory) of STM32 devices. It is pro ...

  8. Linux Shell脚本入门--wc命令

    wc 统计文件里面有多少单词,多少行,多少字符. wc语法 [root@www ~]# wc [-lwm] 选项与参数: -l :仅列出行: -w :仅列出多少字(英文单字): -m :多少字符: 默 ...

  9. setsockopt 设置TCP的选项SO_LINGER

    SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成. 没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回.如果设置了SO_LINGE ...

  10. GetKeyState(vk_control)

    GetKeyState(vk_control)  返回负数 , 说明按键被按下了