`

lucene分布式搜索sensei的使用及完善

阅读更多

原创文章,转载请注明地址: http://rabbit9898.iteye.com/blog/1130674

 

Sensei是LinkedIn的一个分布式搜索系统。安装步骤参考:

http://linkedin.jira.com/wiki/display/SENSEI/Getting+Started

或者 http://rabbit9898.iteye.com/blog/997165  。

sensei项目一直在升级中,估计安装起来越来越复杂了

 

1. Sensei的体系结构



 

2. 完善后的体系结构



 

 

在sensei中采用了两级结果合并来处理。在一个Node中可以有多个分片索引(Partition/Shard),在查询一个关键词时,一个Node上可以并行查询多个分片(P1,P2)可以对结果进行合并;在搜索服务中可以对多个Node的搜索结果进行二次合并。数据调用流程如上面数字所示。

 

 

在结构中添加了cache 和NoSQL 两块。

 

2.1 cache的添加

 cache添加失去了zoie的实时性,主要是因为:

 1) 在数据分发服务中,各个节点很难保证建立索引的一致性结果造成了排序不一致

 2)因为有删除的数据,结果lucene中计算term的TF和IDF时,删除的数据的分词结果计算在Term的TF和IDF。 当删除该数据时,该数据分词后的term响应的TF不会删除,造成了不同索引中Score不一样(如上面的Node1中的p2 和 Node2中的P2即使索引的数据一样,但是Term的TF不一样,就会造成结果的score有细微差别)。

 

2.2 NoSQL的添加

 lucene中如果数据保存在索引中,翻页比较多的时候会比较慢。 每次从索引中取出数据,效率也不太理想。因此采用NoSQL. 从NoSQL根据ID和查询的关键词,从中取出时间、标题、高亮的内容等其他字段。 

 

 

 

 

  • 大小: 55.3 KB
  • 大小: 36.7 KB
1
0
分享到:
评论

相关推荐

    基于Lucene的分布式并行索引.pdf

    分布式并行索引技术基于Lucene是在搜索引擎领域中的一项重要进步。随着网络技术的不断进步,互联网资源日益丰富,搜索引擎在信息检索中扮演着越来越重要的角色。搜索引擎的高效运作依赖于其核心组件——索引技术。一...

    基于Lucene的分布式搜索设计说明书

    **基于 Lucene 的分布式搜索设计说明书** 在当前的互联网环境中,海量数据的处理与检索成为了一个重要的挑战。Apache Lucene 是一个高性能、全文本搜索库,它为开发人员提供了强大的文本搜索功能。然而,单个 ...

    lucene排序、设置权重、优化、分布式搜索.pdf

    例如,下面的代码演示如何使用 Lucene 对分布式搜索结果进行聚合: ```csharp DistributedSearch distributedSearch = new DistributedSearch(); distributedSearch.AddIndex(directory); ``` 在上面的代码中,...

    分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene).rar

    分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的...

    lucene3.0.3搜索的使用示例

    这个"lucene3.0.3搜索的使用示例"压缩包文件很可能是为了帮助用户理解并学习如何在项目中应用Lucene 3.0.3版本的功能。 在Lucene 3.0.3中,主要包含了以下核心概念和知识点: 1. **索引(Indexing)**:这是Lucene...

    lucene 高级搜索项目

    通过以上分析,我们可以看出这个“Lucene 高级搜索项目”全面覆盖了Lucene的核心技术,从基础的索引创建到复杂的附件搜索和全文搜索,再到插件开发和Solr的使用,为学习和实践Lucene提供了丰富的素材。

    基于lucene和nutch的开源搜索引擎资料集合

    Linux下Nutch分布式配置和使用.pdf Lucene+Nutch源码.rar Lucene学习笔记.doc nutch_tutorial.pdf nutch二次开发总结.txt nutch入门.pdf nutch入门学习.pdf Nutch全文搜索学习笔记.doc Yahoo的Hadoop教程.doc [硕士...

    Lucene原理及使用总结

    【Lucene简介】 Lucene是一个基于Java的全文信息检索工具包,它被广泛应用于构建搜索引擎和文本检索系统。...通过理解Lucene的基本原理和使用方法,我们可以构建出高效、灵活的全文搜索引擎,满足各种信息检索需求。

    基于lucene3.6平台搜索工具相关包及使用说明

    本指南将深入探讨基于Lucene 3.6的搜索工具包及其使用方法。 一、Lucene 3.6核心组件 1. 分析器(Analyzer):负责对输入文本进行预处理,包括分词、去除停用词、词形还原等。Lucene 3.6中内置了多种分析器,如...

    盘古分词、lucene3.0.3搜索的使用示例.zip

    在.NET 4.0环境下,可以通过Apache Lucene.NET项目来使用Lucene,它是Lucene的.NET版本实现,使得.NET开发者也能享受到Lucene的强大功能。 集成盘古分词与Lucene 3.0.3的过程大致分为以下几个步骤: 1. **环境配置...

    基于lucene的文件管理系统(完善版,含jar包)

    同时,为了应对大规模数据,可能采用了分布式索引和搜索策略,如Solr或Elasticsearch,它们是基于Lucene构建的更高级别的搜索引擎。 安全性方面,系统可能提供了权限管理功能,限制不同用户对文件的访问和操作。...

    Java搜索引擎 Lucene

    在实际应用中,Lucene通常与Solr或Elasticsearch等工具结合使用,以提供更高级的功能,如集群管理、分布式搜索、实时索引和更丰富的搜索特性。这些工具在Lucene的基础上添加了更多管理和扩展功能,使搜索解决方案...

    Lucene的的学习资料及案例

    Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个简单的API,使得开发者能够方便地在应用中实现全文检索功能。本篇文章将围绕Lucene的核心概念...

    Lucene全文搜索_LuceneJava全文搜索_

    "DocSearch"可能是一个示例程序或库,展示了如何在Java项目中实际集成和使用Lucene进行文档搜索。 总之,Lucene作为Java全文搜索的基石,提供了强大的功能和灵活性,可以帮助开发者构建高效、精准的搜索功能,无论...

    lumongo:使用Lucene和MongoDB进行分布式实时搜索

    使用Lucene进行分布式实时搜索 LuMongo是基于Lucene的实时分布式搜索和存储系统。 LuMongo从头开始设计,可以在服务器之间垂直和水平扩展。 LuMongo将Lucene索引直接存储到MongoDB中。 文档可以本地存储在MongoDB中...

Global site tag (gtag.js) - Google Analytics