当前位置: 首页 > news >正文

上海个人网站建立潜江招聘网

上海个人网站建立,潜江招聘网,邢台招聘信息最新招聘2023,金塔凯元建设集团有限公司官方网站Apache Solr 是广泛使用的搜索引擎。有几个著名的平台使用 Solr#xff1b;Netflix 和 Instagram 是其中的一些名称。我们在 tajawal 的应用程序中一直使用 Solr 和 ElasticSearch。在这篇文章中#xff0c;我将为您提供一些关于如何编写优化的 Schema 文件的技巧。我们不会讨… Apache Solr 是广泛使用的搜索引擎。有几个著名的平台使用 SolrNetflix 和 Instagram 是其中的一些名称。我们在 tajawal 的应用程序中一直使用 Solr 和 ElasticSearch。在这篇文章中我将为您提供一些关于如何编写优化的 Schema 文件的技巧。我们不会讨论 Solr 的基础知识我希望您了解它的工作原理。 虽然您可以在 Schema 文件中定义字段和一些默认值但您不会获得必要的性能提升。您必须注意某些关键配置。在这篇文章中我将讨论这些配置您可以使用它们在性能方面充分利用 Solr。 事不宜迟让我们开始了解这些配置是什么。 1.配置缓存 Solr 缓存与索引搜索器的特定实例相关联索引的特定视图在该搜索器的生命周期内不会更改。 为了最大化性能配置缓存是最重要的一步。 配置filterCache 过滤器缓存由 SolrIndexSearcher 用于过滤器。过滤器缓存允许您控制过滤器查询的处理方式以最大限度地提高性能。FilterCache 的主要好处是当打开一个新的搜索器时它的缓存可以使用旧搜索器的缓存中的数据进行预填充或“自动预热”。所以它肯定有助于最大限度地提高性能。例如 filterCache classsolr.FastLRUCache size512 initialSize512 autowarmCount0 / 类SolrCache 实现 LRUCacheLRUCache 或 FastLRUCache size缓存中的最大条目数 initialSize缓存的初始容量条目数。参见 java.util.HashMap autowarmCount要从旧缓存预填充的条目数。 配置queryResultCache和documentCache queryResultCache 缓存保存先前搜索的结果基于查询、排序和请求的文档范围的文档 ID 的有序列表 (DocList)。 documentCache 缓存保存 Lucene Document 对象每个文档的存储字段。由于 Lucene 内部文档 ID 是瞬态的因此该缓存不会自动预热。 您可以根据您的应用程序配置它们。它在您主要使用只读用例的情况下提供更好的性能。 假设您有一个博客一个博客可以在帖子上有帖子和评论。在 Post 的情况下我们可以启用这些缓存因为在这种情况下数据库读取远远超过写入。所以在这种情况下我们可以为 Posts 启用这些缓存。 例如 queryResultCache classsolr.LRUCachesize512 initialSize512 autowarmCount0 /documentCache classsolr.LRUCache size512 initialSize512 autowarmCount0 / 如果您主要使用只写用例请在每次软提交时禁用 queryResultCache 和 documentCache这些缓存会被刷新并且不会产生太大的性能影响。因此请记住上面提到的博客示例我们可以在评论的情况下禁用这些缓存。 2.配置SolrCloud 如今云计算非常流行它允许您管理可扩展性、高可用性和容错性。Solr 能够设置结合容错和高可用性的 Solr 服务器集群。 在 setupSolrCloud 环境中您可以配置“主”和“从”复制。使用“主”实例来索引信息并使用多个从属基于需求来查询信息。在主服务器上的 solrconfig.xml 文件中包括以下配置 str nameconfFiles solrconfig_slave.xml:solrconfig.xml,x.xml,y.xml /str 查看 Solr Docs 了解更多详细信息。 3.配置Commits 为了使数据可用于搜索我们必须将其提交到索引。在某些情况下当您拥有数十亿条记录时提交可能会很慢Solr 使用不同的选项来控制提交时间让您可以更好地控制何时提交数据您必须根据您的应用程序选择选项。 “提交”或“软提交” 您可以通过发送 committrue 参数和更新请求来简单地将数据提交到索引它将对所有 Lucene 索引文件进行硬提交到稳定存储它将确保所有索引段都应该更新并且成本可能很高当你有大数据时。 为了使数据立即可用于搜索可以使用附加标志 softCommittrue它会快速提交您对 Lucene 数据结构的更改但不保证将 Lucene 索引文件写入稳定存储此实现称为Near Real Time一项提高文档可见性的功能因为您不必等待后台合并和存储如果使用 SolrCloud则为 ZooKeeper完成然后再进行其他操作。 自动提交 autoCommit 设置控制挂起更新自动推送到索引的频率。您可以设置时间限制或最大更新文档限制来触发此提交。也可以在发送更新请求时使用 autoCommit 参数定义。您还可以在 Request Handler 中定义如下 autoCommit maxDocs20000/maxDocs maxTime50000/maxTime openSearcherfalse/openSearcher /autoCommit maxDocs自上次提交以来发生的更新数。 maxTime自最旧的未提交更新以来的毫秒数 openSearcher执行提交时是否打开一个新的搜索器。如果这是错误的则提交会将最近的索引更改刷新到稳定存储但不会导致打开新的搜索器以使这些更改可见。默认值为真。 在某些情况下您可以完全禁用 autoCommit例如如果您将数百万条记录从不同的数据源迁移到 Solr您不希望在每次插入时都提交数据甚至不希望在批量的情况下提交数据。每 2、4 或 6 千次插入都不需要它因为它仍然会减慢迁移速度。在这种情况下您可以完全禁用 autoCommit 并在迁移结束时进行提交或者您可以将其设置为较大的值例如 3 小时即 3*60*60*1000。您还可以添加 maxDocs50000000/maxDocs这意味着仅在添加 5000 万个文档后才会自动提交。发布所有文档后手动或从 SolrJ 调用一次 commit - 提交需要一段时间但总体上会快得多。 此外在您完成批量导入后减少 maxTime 和 maxDocs以便您对 Solr 所做的任何增量帖子都会更快地提交。 4.配置动态字段 Apache Solr 的一项惊人功能是 dynamicField。当您有数百个字段并且您不想定义所有字段时它非常方便。 动态字段与常规字段一样只是它的名称中带有通配符。在索引文档时不匹配任何明确定义的字段的字段可以与动态字段匹配。 例如假设您的架构包含一个名为 *_i 的动态字段。如果您尝试使用 cost_i 字段索引文档但架构中没有明确定义 cost_i 字段则 cost_i 字段将具有为 *_i 定义的字段类型和分析。 但是你在使用dynamicField时必须小心不要广泛使用它因为它也有一些缺点如果你使用投影如“abc.*.xyz.*.fieldname”来获取特定的动态字段列使用正则表达式解析字段需要时间。在返回查询结果的同时也增加了解析时间下面是创建动态字段的示例。 dynamicField name*.fieldname typeboolean multiValuedtrue storedtrue / 使用动态字段意味着您可以在字段名称中拥有无限数量的组合因为您指定了通配符有时可能会很昂贵因为 Lucene 为每个唯一字段列名称分配内存这意味着如果您有一行包含列A、B、C、D 和另一行有 E、F、C、DLucene 将分配 6 块内存而不是 4 块因为有 6 个唯一列名所以即使有 6 个唯一列名万一百万行它可能会使堆崩溃因为它将使用 50% 的额外内存。 5. 配置索引与存储字段 索引字段意味着您正在使字段可搜索indexedtrue 使字段可搜索、可排序和可分面例如如果您有一个名为 test1 且 indexedtrue 的字段那么您可以像 q 一样搜索它test1:foo其中 foo 是您要搜索的值因此仅将搜索所需的那些字段设置为 indexedtrue如果需要其余字段应为 indexedfalse在搜索结果中。例如 field namefoo typeint storedtrue indexedfalse/ 这意味着我们可以减少重新索引时间因为在每次重新索引时Solr 都会应用过滤器、标记器和分析器这会增加一些处理时间如果我们的索引数量较少的话。 6.配置复制字段 Solr 提供了非常好的功能称为 copyField它是一种将多个字段的副本存储到单个字段的机制。copyField 的使用取决于场景但最常见的是创建单个“搜索”字段当用户或客户端未指定要查询的字段时该字段将用作默认查询字段。 对所有通用文本字段使用copyField并将它们复制到一个文本字段中并使用它进行搜索它会减少索引大小并为您提供更好的性能例如如果您有像ab_0_aa_1_abcd这样的动态数据并且您想要复制所有 具有后缀 _abcd 到一个字段的字段。您可以在 schema.xml 中创建一个 copyField如下所示 copyField source*_abcd destwxyz/ source要复制的字段的名称 dest复制字段的名称 7. 使用过滤查询‘fq’ 在搜索中使用 Filter Query fq 参数对于最大化性能非常有用它定义了一个查询可用于限制可以返回的文档的超集而不影响分数它独立缓存查询。 Filter Queryfq 对于加速复杂查询非常有用因为使用 fq 指定的查询独立于主查询进行缓存。当后面的查询使用相同的过滤器时会发生缓存命中并且过滤器结果会从缓存中快速返回。 下面是使用过滤器查询的 curl 示例 POST {form_params: {fq: id1234,fl: abc cde,wt: json},query: {q: *:*} } 过滤 qeury 参数也可以在单个搜索 qeury 中多次使用。查看 Solr Filter Qeury 文档以获取更多详细信息。 8. 使用构面查询 Apache Solr 中的 Faceting 用于将搜索结果分类为不同的类别执行聚合操作如按特定字段分组、计数、分组等非常有帮助因此对于所有聚合特定查询您可以使用 Facet 来 开箱即用地进行聚合它也将成为性能提升器因为它纯粹是为此类操作而设计的。 下面是向 solr 发送构面请求的 curl 示例。 {form_params: {fq : fieldName:value,fl : fieldName,facet : true,facet.mincount: 1,facet.limit : -1, facet.field : fieldName,wt : json,},query : {q: *:*,}, } fq过滤查询 fl结果中要返回的字段列表 facettrue/false 启用/禁用构面计数 facet.mincount排除计数低于 1 的范围 facet.limit限制结果中返回的组数-1 表示全部 facet.field该字段应被视为构面对结果进行分组 结论 将 Solr 投入生产时性能改进是关键步骤。Solr 中有许多调整旋钮可以帮助您最大限度地提高系统的性能其中一些我们在本博客中讨论过在 solr-config 文件中进行更改以使用最佳配置使用适当的索引选项或字段更新架构文件 类型尽可能使用过滤器 queriesfq 并使用适当的缓存选项但这又取决于您的应用程序。 这就结束了。 本文https://architect.pub/configuring-solr-optimum-performance讨论知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】公众号  【jiagoushipro】 【超级架构师】 精彩图文详解架构方法论架构实践技术原理技术趋势。 我们在等你赶快扫描关注吧。微信小号  【cea_csa_cto】 50000人社区讨论企业架构云计算大数据数据科学物联网人工智能安全全栈开发DevOps数字化.   QQ群  【792862318】深度交流企业架构业务架构应用架构数据架构技术架构集成架构安全架构。以及大数据云计算物联网人工智能等各种新兴技术。 加QQ群有珍贵的报告和干货资料分享。 视频号【超级架构师】 1分钟快速了解架构相关的基本概念模型方法经验。 每天1分钟架构心中熟。 知识星球向大咖提问近距离接触或者获得私密资料分享。  喜马拉雅路上或者车上了解最新黑科技资讯架构心得。【智能时刻架构君和你聊黑科技】知识星球认识更多朋友职场和技术闲聊。知识星球【职场和技术】微博【智能时刻】智能时刻哔哩哔哩【超级架构师】 抖音【cea_cio】超级架构师 快手【cea_cio_cto】超级架构师 小红书【cea_csa_cto】超级架构师  谢谢大家关注转发点赞和点在看。
http://www.pierceye.com/news/860337/

相关文章:

  • 网站内容由什么组成部分网页网站设计价格
  • wordpress方框里面打勾两个域名同一个网站做优化
  • 个人怎么做公司网站闲置电脑做网站服务器
  • 有没有什么 网站能够做试卷wordpress写 a href
  • 西安 北郊网站建设网站上传图片加水印
  • 沈阳网站制作哪家好包头爱出行app最新版本
  • 怎么用IP做网站地址网站如何投放广告
  • 试述电子商务网站的建设流程太原建站的模板
  • 微信群投票网站怎么做的企业门户网站怎么做
  • 建网站平台 优帮云嘉兴营销型网站
  • 建筑类专业做教育的网站ui设计app
  • 郑州做营销型网站的公司什么叫社交电商平台
  • 外国做问卷可以赚钱的网站做中国菜的外国网站
  • 青岛市建设厅网站快递网站建设
  • 昆明网站WordPress文章怎么折叠
  • 拖拽建站系统源码企业主题展厅设计公司
  • asp.net网站的数据库配置张家港网站 设计制作
  • 聊城手机网站建设多少钱扬州网站建设哪个好薇
  • 云南安宁做网站的公司手机网页制作软件中文版
  • 如何做征信公司网站做谷歌推广一定要网站吗
  • 重庆市做网站的公司有哪些苏州网站建设设计公司
  • 网站制作计算机域名解析到网站
  • 自己做的电影网站打开很慢wordpress 防采集
  • 西安专业网站建设公司排名做网站编写
  • 做电影网站还能赚钱云南网站建设哪家公司好
  • 重庆定制网站开发什么是网络营销战略
  • 网站建设硬件方案精准客源app
  • 网站视觉优化怎么做电子商务网站建设参考文献2018
  • 服务器可以吧网站做跳转吗wordpress 远程图片本地化
  • 网站在线访谈栏目建设个人网站可以备案了吗