一,概述
17173搜索是一套对站内各个系统的信息组织和处理后,为用户提供检索服务,将用户检索的相关信息展示给用户的系统,因为遇到性能问题,故对基于Lucene的搜索框架Solr进行研究,看能否找到相应的解决方案。
二,测试说明
1, BBS总共有七千万条数据(40G左右)。
2, 在对BBS论坛进行搜索查询时,查询时间久,每次搜索都占用较大的CPU与内存,性能比较低。
3, 综之前研究,因业务需求,改为单字切分,使倒排链表算法在搜索时,浪费很多性能。
4, 在对时间进行过滤查询时,查询时间缓慢。
因上述原因,故对Solr进行测试,是否在单字切分时,能否解决这一类型的问题,以便引用
三,性能测试内容
测试分析
1, 在对BBS进行测试一千万条时,查询时间较快,不会发生性能问题,故产生思路对七千万条数据进行切分成六个索引,进行搜索。
2, Solr中提供了切分索引的分布式搜索,对其性能进行测试,如图:
测试结论
1, 搭建三台(solr1,solr2,solr3)服务器,solr1用于对其他两台solr2,solr3进行分发请求及计算。
2, 在发出请求时,查询单字切分的两千万条数据时,使用时间过滤时,查询性能也比较慢。
3, 查看其源码实现方式,solr1会第一次发出请求到solr2,solr3中获取符合条件的文档数,并返回其id与相应的得分数。第二次根据得分数向各服务器发出请求,得到得分较高的文档数后返回,请求查询数为(2*n+1),使性能更低于我们本身的17173站内搜索。
查询性能(17173,solr)比较:
框架
|
查询数据
|
时间(ms)
|
数据量
|
17173(Lucimint)
|
“魔”(半年)
|
63
|
一千万条
|
Solr
|
“魔”(半年)
|
1847
|
一千万条
|
17173(Lucimint)
|
“剑灵”(半年)
|
1023
|
三千万条
|
Solr
|
“剑灵”(半年)
|
3000
|
三千万条
|
17173(Lucimint)
|
侠骨柔情剑气扬,唯我枫月武林狂(半年)
|
1937
|
三千万条
|
Solr
|
侠骨柔情剑气扬,唯我枫月武林狂(半年)
|
24115
|
三千万条
|
故这种查询分发,对于我们这种类型的查询并没有相应的性能提高。
四,遗留问题分析
Solr还提供了复制模式,用于满足高并发时架构集群,高并发时分发到不同的服务器,达到负载均衡。但是这并不符合,我们少数请求时引起的性能问题。
可对于在用户搜索时,对搜索字进行切分,没有语义的予以去掉,来提高一部分性能。
- 大小: 8.9 KB
分享到:
相关推荐
Solr是Apache软件基金会开发的一款开源全文搜索引擎,它基于Java平台,是Lucene的一个扩展,提供了更为...通过研究其源码,开发者不仅可以学习到搜索引擎的相关知识,还可以提升在大数据处理和分布式系统设计上的技能。
通过深入研究`solr-9.0.0-src.tgz`源码,开发者可以理解Solr的工作原理,定制自己的搜索解决方案,解决特定场景下的性能挑战,并为社区贡献新的功能和优化。同时,这也为学习和研究信息检索、全文搜索、分布式计算等...
Solr项目源码及solr资源包是一个针对搜索...通过深入研究和实践这个“Solr项目源码及solr资源包”,开发者不仅可以掌握Solr的基本用法,还能了解Spring Data Solr的高级特性,从而提升在实际项目中的搜索引擎开发能力。
Solr 是一个开源的全文搜索引擎,它被广泛用于构建企业级的搜索应用。...通过深入研究这个入门工程,你将能够熟练掌握Solr与Java的结合使用,为构建基于华为FusionInsight的高效搜索应用打下坚实基础。
在压缩包`solr-custom-score-master`中,可能包含了这样的示例代码,你可以根据实际需求进行研究和应用。 总结来说,通过Solr的函数查询和自定义插件,我们可以灵活地构建电商搜索的自定义打分机制。这不仅可以提升...
基于Solr的搜索引擎研究与实现,讲述了solr技术的原理及其应用等等
Solr,全称为Apache Solr,是Apache软件基金会的一个开源项目,主要用来处理和搜索大量文本数据。Solr是一款高效、可扩展的企业级全文搜索引擎,...开发者可以通过深入研究这些内容,搭建并优化自己的搜索解决方案。
#### 九、案例研究与最佳实践 - **应用场景**: 分享 Solr 在电子商务、新闻网站、企业内部搜索等多个领域的实际应用案例。 - **部署策略**: 探讨 Solr 的集群部署策略和分布式环境下的最佳实践。 #### 十、社区与...
通过研究这些文件和目录,开发者可以学习如何配置Solr服务器,创建和管理索引,实现复杂的查询逻辑,以及优化搜索性能。同时,Solr 7.7.3可能包含了一些新特性、改进和bug修复,具体细节可以通过阅读CHANGES.txt来...
总的来说,研究Solr4.3的源代码能让你深入理解全文搜索的工作原理,掌握如何利用Solr和Lucene来构建高性能的搜索应用。同时,对于解决实际问题、优化搜索性能以及扩展功能等方面都有着重要的意义。
本书作者是国内较早接触Solr的技术专家之一,多年一直在Solr的研究、实践和布道的路上不遗余力、乐此不彼。本书立足全球视野,综合Solr技术的发展和应用、从业人员的学习曲线,以及中英文资料的供给情况,给自己设定...
4. `src`:源代码目录,包含了所有Java源码,是研究和定制Solr功能的关键部分。 5. `contrib`:这里包含了各种社区贡献的模块,例如数据分析器、查询解析器等。 Solr-4.5.0版本的主要改进和特性: 1. **分布式搜索...
通过研究Solr 4.6.0的源代码,开发者可以深入理解其内部工作原理,定制化搜索服务,优化性能,以及解决在部署和使用过程中遇到的问题。这不仅有助于提升对全文检索技术的理解,也有利于开发更加高效和个性化的搜索...
国内较早接触Solr的技术专家之一,长期致力于Solr的技术研究、实践和生产环境部署,是Solr社区的积极参与者和实践者,以让Solr技术能够在中国得到广泛应用不遗余力并乐此不疲。现就职于国美金融,曾就职于各种大大...
通过研究这些源代码实例,开发者可以深入了解Solr的工作机制,学习如何根据自己的需求调整和优化配置,从而更好地利用Solr的强大功能。对于新手来说,这些实例提供了宝贵的实践机会,可以帮助他们快速掌握Solr的使用...
通过深入研究 Solr 6.6.0 的源码,开发者可以了解其内部工作原理,掌握如何优化索引构建、查询性能,以及如何利用其高级特性,如分面搜索、地理位置搜索、复杂查询语法等。这有助于开发出更加高效、定制化的搜索引擎...
- **学术研究机构**:论文数据库的构建与维护同样离不开高性能的搜索引擎。 #### 五、总结 通过本文的学习,我们不仅了解了Lucene和Solr的基本概念、特点以及工作原理,还对比分析了它们之间的异同之处,并探讨了...