概述:solr 作为搜索引擎系统,它应该包含两部分内容,分别是:索引系统 和 搜索系统。

  索引系统

    它主要负责将外部不同数据源的数据转换为 solr 格式规范的数据格式(我们称之为:SolrInputDocument),一般常见到的外部数据源包含有

      1. 关系型数据库:mysql、oracle

      2. 文件系统:hdfs、files

      3. 内存数据库:redis

      4. 实时数据:它一般是通过队列进行实时解析,常用到的有:kafka、rabbitmq、nats 等消息队列

    不管是什么类型的数据,都需要定义一个与业务相关的 schema.xml 文件与之对应(当然,solr5.x 之后已经可以动态匹配,但是个人建议最好手动指定,这样可以保证数据的准确性),这样在转换不同类型的数据的时候,都需要按照 schema.xml 中指定的格式进行格式化,格式化后的类型为 SolrInputDocument 类型,使用 solrj 的 add 方法将转好的文档添加到 solr 集群当中,这样搜索引擎系统的第一步插入数据就完成了。

  搜索系统

    它主要负责按照当前业务需求进行封装查询参数(queryBean),并实现解析参数拼接对应 solr 可以识别的查询条件(query),最后通过 solrj 的 query() 方法进行查询得到初步结果集,将这些结果集转换为业务格式规范的结果数据并返回给客户端。涉及到业务的增、删、改 和 查。

  以上两部分都需要有一定的系统架构知识以及封装、扩展能力,尤其是搜索系统,设计合理才能使得对外提供接口服务更加高效和稳定。

  正在总结中,先通过一个索引来说明索引如何建立,之后再通过一个简单的搜索来介绍如何搜索。最后通过一个稍微高度的架构来说明如何更加优雅的构建相应的系统。

  申明:由于今天太晚了,有些内容需要抽丝剥缕,比较耗时间,所以原计划的索引内容推迟到明天发布

solr基础使用概述的更多相关文章

  1. Magento 架构基础知识概述

    Megento 架构基础知识概述 Magento整合了面向对象的基于PHP的应用程序的核心架构原则.这些一般原则的综合讨论既有在线的,也有印刷形式.以下讨论主要关注这些主题如何直接应用于Magento ...

  2. 【solr基础教程之一】Solr相关知识点串讲

           Solr是Apache Lucene的一个子项目.Lucene为全文搜索功能提供了完备的API,但它只作为一个API库存在,而不能直接用于搜索.因此,Solr基于Lucene构建了一个完 ...

  3. 【solr基础教程之中的一个】Solr相关知识点串讲

           Solr是Apache Lucene的一个子项目.Lucene为全文搜索功能提供了完备的API.但它仅仅作为一个API库存在.而不能直接用于搜索. 因此,Solr基于Lucene构建了一 ...

  4. java基础总结——概述

      一.java语言概述 来自维基百科 https://zh.wikipedia.org/wiki/Java Java是一种计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广泛应用于企业级Web ...

  5. iBatis第一章:基础知识概述 & MVC思想

    一.java是一门十分受开发人员欢迎的语言,在开发语言排行榜中名列前茅,人们对其看法不尽相同,就我自身感受而言,我觉得java语言的主要优势体现在如下几方面:1.java属于开源语言,开发人员可以找到 ...

  6. Lucene与Solr基础

    SolrSelectTest 查询与删除 package com.snow.solr; import com.snow.bean.Product; import org.apache.solr.cli ...

  7. Solr学习之二-Solr基础知识

    一 基本说明 简单来说Solr是基于Lucene的高性能的,开源的Java企业搜索服务器.Solr可以看作一个Web app,运行在tomcat或Jetty这类HTTP服务器上, 底层是一个基于Luc ...

  8. Solr第一讲——概述与入门

    一.solr介绍 1.什么是solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr可以独立运行在Jetty.Tomcat等这些Serv ...

  9. Solr基础知识二(导入数据)

    上一篇讲述了solr的安装启动过程,这一篇讲述如何导入数据到solr里. 一.准备数据 1.1 学生相关表 创建学生表.学生专业关联表.专业表.学生行业关联表.行业表.基础信息表,并创建一条小白的信息 ...

随机推荐

  1. 欢迎来怼--第二十九次Scrum会议

    一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/11/17 15:55~16:25,总计30min. 地 ...

  2. Java锁的种类以及辨析

    锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类 ...

  3. web窗体之四则运算

    1,计算方法: namespace ASP.NET { public class JiSuan { public int S; public int Result { get { return S; ...

  4. 文件名命工具类(将指定目录下的文件的type类型的文件,进行重命名,命名后的文件将去掉type)

    import java.io.File; /** * <b>function:</b> 文件命名工具类 * @author hoojo * @createDate 2012-5 ...

  5. C#设置代码只在调试模式下执行

    获取一个值,它指示调试器是否已附加到进程. 命名空间:Namespace:System.Diagnostics if (Debugger.IsAttached) { Response.Write(&q ...

  6. Objective-C UIWebView添加脚视图

    - (void)addObserverForWebViewContentSize{ [self.webView.scrollView addObserver:self forKeyPath: cont ...

  7. Alpha阶段博客链接

    博客链接 团队项目启程篇章:http://www.cnblogs.com/liuliudashun/p/5968194.html 团队项目开发篇章1:http://www.cnblogs.com/li ...

  8. 0523 Scrum项目6.0

    0523 团队项目6.0 一,组员任务完成情况 首页设计初步完成但是需要优化界面,只能简单的输出信息和在首页进行登录.界面极其简单.使用了Javabean的设计模式,进行改进,使得页面的里的代码看起来 ...

  9. MSSQL给字段添加默认值

    create table t(id int,v int ) go alter table t ADD DEFAULT 0 FOR v go

  10. dotTrace快速帮助你定位C#代码的性能瓶颈

    dotTrace 1.     问题描述 IIS发布的接口运行一段时间后变的很慢,重启IIS连接池后问题得到解决,但是运行一段时间后再次出现变慢的问题 2.     问题原因 程序中有读取xml文件的 ...