`
shixin42
  • 浏览: 55632 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

senseidb中对zoie的整合

 
阅读更多
com.senseidb.conf.SenseiServerBuilder.buildCore()方法中开始对zoie进行实例化:

1 构建ZoieConfig实例:
ZoieConfig会设置Analyzer, Similarity实例,这些基本的lucene对象可以在sensei配置文件中自定义。设置batchSize, batchDelay, maxBatthSize, rtIndexing, skipBadRecord, freshness等属性也是在sensei配置中可配的。

2. 构建SenseiZoieFactory
sensei自己实现了一个默认的解释器,实现了ZoieIndxableInterpreter(用于把DataProvider产生的DataEvent转换成lucene Document)

调用constructZoieFactory方法创建SenseiZoieFactory实例:
private SenseiZoieFactory<?> constructZoieFactory(
ZoieConfig zoieConfig,
List<FacetHandler<?>> facetHandlers,
List<RuntimeFacetHandlerFactory<?, ?>> runtimeFacetHandlerFactories,
ZoieIndexableInterpreter interpreter) {
2.1
sensei自己实现了一个默认的IndexReader包装器
SenseiIndexReaderDecorator decorator = new SenseiIndexReaderDecorator(facetHandlers, runtimeFacetHandlerFactories);
这个装饰器整合了linkedIn另一个开源项目Bobo. Bobo提供一中结构化的模式来对索引进行查询。

2.2
构建SenseiZoieSystemFacotry实例
SenseiZoieSystemFactory senseiZoieFactory = new SenseiZoieSystemFactory(idxDir, dirMode, interpreter, decorator, zoieConfig);
idxDir是索引所在的目录
dirMode是目录类型,默认是simple

2.3
实例化一个lucene的Filter实例purgeFilter, 过滤器,是根据时间进行过滤。同样是可配的

2.4
可选的IndexCopier,可能用来实现索引备份的。?
}

3. 在实例化SenseiCore的时候,会传递SenseiZoieSystemFactory实例



SenseiCore在启动的时候,会根据所在node的partition数量,建立相对应的IndexDirecory,每个目录,都有一个Zoie实例进行管理。
for (int part : _partitions){
Zoie<BoboIndexReader,?> zoieSystem = _zoieFactory.getZoieInstance(_id,part);
...
}
所以在sensei.properties中指定的索引目录只是一个父目录,sensei会根据nodeId和partitionId进行子目录,子索引管理。

Sensei会注册每个Zoie实例,通过JMS进行通信。

	public void start() throws Exception {
		if (_started)
			return;
		for (int part : _partitions) {

			Zoie<BoboIndexReader, ?> zoieSystem = _zoieFactory.getZoieInstance(
					_id, part);

			// register ZoieSystemAdminMBean

			String[] mbeannames = zoieSystem.getStandardMBeanNames();
			for (String name : mbeannames) {
				JmxUtil.registerMBean(zoieSystem.getStandardMBean(name),
						"zoie-name", name + "-" + _id + "-" + part);
			}

			if (!zoieSystems.contains(zoieSystem)) {
				zoieSystem.start();
				zoieSystems.add(zoieSystem);
			}

			_readerFactoryMap.put(part, zoieSystem);
		}
		try {
			pluggableSearchEngineManager.start(this);
			logger.info("initializing index manager...");
			if (_indexManager != null) {
				_indexManager.initialize(_readerFactoryMap);
			}
			logger.info("starting index manager...");
			if (_indexManager != null) {
				_indexManager.start();
			}

			logger.info("index manager started...");
		} catch (Exception e) {
			logger.error(
					"Unable to start indexing manager, indexing not started...",
					e);
		}
		_started = true;
	}

       
0
2
分享到:
评论

相关推荐

    Zoie实时搜索架构

    Zoie实时搜索架构,作为一款基于Apache Lucene构建的系统,旨在提供分布式、实时和高性能的搜索服务,满足了大数据背景下对搜索效率的高要求。尽管Zoie的文档可能不够详尽,但其核心技术和优势依然值得我们深入探讨...

    Lucene5学习之增量索引(Zoie)

    在实际应用中,每当有新的person数据插入或更新时,Zoie会监控到这些变化,然后对这些数据进行增量索引,确保索引始终保持最新状态。 总结起来,Lucene5学习之增量索引(Zoie)涉及到的关键技术点包括: 1. 基于...

    zoie, 实时搜索/索引系统.zip

    zoie, 实时搜索/索引系统 什么是 ZoieZoie是用Java编写的实时搜索/索引系统。维基维基在以下位置可用:http://linkedin.jira.com/wiki/display/ZOIE/Home问题问题在以下位置跟踪:http://link

    lucene5+zoie实现近实时索引

    在实际应用中,Lucene 5 + Zoie的组合特别适合于那些需要快速响应新数据、并且对数据新鲜度要求高的场景,如新闻网站、社交媒体、电子商务平台等。开发者可以通过API接口,轻松地将新数据接入到Zoie系统,实现近实时...

    ewhine_search:ewhine 搜索系统使用 zoie

    The ewhine search system use zoie. #安装 git clone :jimrok/ewhine_search.git cd ewhine_search java -jar server.jar 如果在Mac的控制台下,使用 java -Dfile.encoding=UTF-8 -jar server.jar #索引 在ewhine_...

    吴一男:网易通用搜索优化之道

    - 系统的整合与管理能力被提及,以及Zoie实时索引系统的特点和作用。 3. 搜索的云服务化(NCS) - 讨论了将搜索服务迁移到云环境下的优势,如提供轻量级运维、简化使用与运维过程、以及资源的弹性利用和共享。 -...

    lucene of lietu

    **Document**:在 Lucene 中,Document 代表一条记录,它可以包含多个 Field(字段)。例如,一篇文章可能有标题、正文和修改时间等字段。每个 Field 都有其特定的存储和索引属性,如是否分词、是否存储原始内容以及...

    zoieleung0309.github.io

    通过对"zoieleung0309.github.io-master"压缩包的探索,我们可以深入学习以上提到的CSS知识点,并可能发现更多实际应用中的技巧和最佳实践。此外,如果该网站包含源码,还可以研究作者如何运用这些技术构建实际的...

    搜索实时更新系统架构介绍.pptx

    - 数据融合是将来自不同来源的数据整合在一起,去重是确保不重复展示相同信息。重排序和精确控位则用于优化搜索结果,提高用户满意度。 4. **个性化与关联商品**: - 个性化搜索考虑用户的个人偏好,通过学习搜索...

    CSDN TUP第二期:王鹏云演讲PPT

    - **Zoie**:基于Lucene构建,来自LinkedIn,适用于中小规模的实时搜索需求。 - **Sphinx**:自1.10-beta版本起支持实时搜索功能,被广泛应用于craigslist、netlog等网站。 通过以上分析可以看出,实时搜索不仅是一...

    垂直搜索-您不知道的秘密 -solr中国-风雨V1.1

    下面将对这些知识点进行详细阐述。 ### 一、5W+1H —— 垂直搜索引擎之开篇 #### 1. Why(为什么要做 —— 原因) - **客观因素**: - 当网站的主要目标是促成交易时,且访问该网站的用户通常是基于明确需求而来...

    j2ee面试考察点.pdf

    以下是对这些知识点的详细说明: **一、Web开发** 1. **MVC(模型-视图-控制器)**:这是一种软件设计模式,用于将业务逻辑、数据与用户界面分离。模型处理数据,视图负责展示,控制器协调它们之间的交互。 2. **...

    lucene solr搜索引擎介绍ppt,很不错哟,共44页

    它提供了核心的索引和搜索功能,包括对文本进行分析、创建倒排索引以及执行高效的搜索操作。不过,Lucene并不包括爬虫、文档格式解析或特定的排序算法,如Google的PageRank。 **Lucene 的发展与应用** 随着时间的...

    张琨:教育社交平台的web架构分享

    例如FeedSystem是基于开源的key-value数据库Redis构建的,而Instantsearchserver是基于zoie进行开发的。NoticeSystem则利用了mochiweb的高效通信特性,采用了Erlang编程语言。MQserver使用了RabbitMQ作为基础的异步...

    zoieboyd.github.io

    HTML代码中可能包含了对个人品牌的表述,页面布局的逻辑,以及交互元素的设计。如果存在JavaScript代码,那还涉及到动态功能的实现,如表单处理、动画效果或API交互。不过,具体的细节需要直接查看源代码才能得知。

    淘宝支付宝数据平台

    - **案例简介**:未提供具体细节,但可以从名称推测该系统主要用于管理Hadoop集群中的各种资源。 **4. Pig相关——可视化用户自主查询** - **案例简介**:未提供具体细节,但可以从名称推测该应用旨在利用Pig工具...

    计算机网络 实验1 常用网络命令的使用

    计算机网络 实验1 常用网络命令的使用 1. 实验目的 (1) 掌握 ping、ipconfig、tracert、netstat、ARP、nslookup、net 等命令含义和基本用法; (2) 学会运用 ping、ipconfig、tracert、netstat、ARP、nslookup、net ...

    计算机网络 实验6-7 交换机及其VLAN的配置-协议分析-ARP协议

    实验6_7 交换机及其VLAN的配置_协议分析—ARP协议 1. 实验目的 (1) 熟悉交换机的配置环境; (2) 了解交换机基于端口的 VLAN 的设置。 (3) 掌握 Wireshark 的安装; (4) 熟练并掌握 Wireshark 的基本使用;...

    计算机网络 实验2 Wireshark的安装与基本操作

    实验2 Wireshark的安装与基本操作 1. 实验目的 学习 Wireshark 的基本操作,抓取和分析有线局域网的数据包,熟悉一些应用层命令和协议。

    计算机网络 实验4 Packer Tracer模拟器的配置与使用

    实验4 模拟器的配置与使用 1. 实验目的 (1) 掌握Packer Tracer软件的用法。 (2) 掌握交换机基本信息的配置管理以及配置基本命令的用法。 2. 实验内容简要描述 运用 Packer Tracer 软件,进行基本配置与管理、交换机...

Global site tag (gtag.js) - Google Analytics