栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java-MongoDB + Solr性能

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-MongoDB + Solr性能

您的方法实际上是好的。一些流行的框架(例如Compass)正在较低级别执行您描述的内容,以自动反映通过ORM框架执行的索引更改(请参阅http://www.compass-
project.org/overview.html
)。

除了您要描述的内容之外,我还将定期重新索引MongoDB中的所有数据,以确保Solr和Mongo都同步(可能不像您想的那样长,具体取决于文档数量,字段数,每个字段的令牌数和分析器的性能:使用复杂的分析器,我经常在不到15分钟的时间内创建5到8百万个文档的索引(大约20个字段,但是文本字段很短)您的RAM缓冲区不会太小,并且在添加所有文档之前不要提交/优化)。

关于性能,提交是昂贵的,而优化是非常昂贵的。根据最重要的事情,您可以更改Solrconfig.xml中的mergefactor的值(高的值可以提高写入性能,而低的值可以提高读取性能,最好从10开始)。

您似乎担心索引建立时间。但是,由于Lucene索引存储是基于段的,因此写吞吐量不应过多地依赖于索引的大小(http://lucene.apache.org/java/2_3_2/fileformats.html)。但是,预热时间会增加,因此您应确保

  • 在solrconfig.xml配置文件中的firstSearcher和newSearcher参数中有一些典型的(特别是用于加载字段缓存的排序),但不是太复杂的查询,
  • useColdSearcher设置为
    • 假以具有良好的搜索性能,或
    • 如果希望以较慢的搜索速度更快地考虑对索引执行的更改,则为true。

此外,如果在将数据写入MongoDB后仅X毫秒后才可以搜索数据,对于您来说可以接受,则可以使用UpdateHandler的commitWithin功能。这样一来,Solr便不必频繁提交。

有关Solr性能因子的更多信息,请参见
http://wiki.apache.org/solr/SolrPerformanceFactors

要删除文档,可以通过文档ID(在schema.xml中定义)或通过查询来删除:http
:
//lucene.apache.org/solr/api/org/apache/solr/client/solrj/SolrServer.html



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454220.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号