【问题标题】:Solr performance issuesSolr 性能问题
【发布时间】:2016-10-30 13:58:32
【问题描述】:

我正在使用 Solr 处理对大量文档的搜索,我开始遇到带有构面和过滤器的复杂查询的性能问题。 这是一个用于获取一些数据的 solr 查询:

solr 完整请求:http://host/solr/discovery/select?q=&fq=domain%3Acom+OR+host%3Acom+OR+public_suffix%3Acom&fq=crawl_date%3A%5B2000-01-01T00%3A00%3A00Z+TO+2000-12 -31T23%3A59%3A59Z%5D&fq=%7B%21tag%3Dcrawl_year%7Dcrawl_year%3A%282000%29&fq=%7B%21tag%3Dpublic_suffix%7Dpublic_suffix%3A%28com%29&start=0&rows=10&sort=score+desc&fl=%2Cscore&hl=true&hl.fragsize=200&hl.simple.pre=%3Cstrong%3E&hl.simple.post=%3C%2Fstrong%3E&hl.sn-ps=10&hl.fl=content&hl.mergeContiguous=false&hl.maxAnalyzedChars=100000&hl.usePhraseHighlighter= true&facet=true&facet.mincount=1&facet.limit=11&facet.field=%7B%21ex%3Dcrawl_year%7Dcrawl_year&facet.field=%7B%21ex%3Ddomain%7Ddomain&facet.field=%7B%21ex%3Dpublic_suffix%7Dpublic_suffix&facet.field=%7B% 21ex%3Dcontent_language%7Dcontent_language&facet.field=%7B%21ex%3Dcontent_type_norm%7Dcontent_type_norm&shards=shard1"

当这个查询在本地使用大约 50000 个文档时,大约需要 10 秒,但是当我在拥有 2 亿个文档的主机上尝试它时,大约需要 4 分钟。我自然知道在主机中需要更长的时间,但我想知道是否有人遇到同样的问题并且能够获得更快的结果。知道我正在使用两个 Shard。

等待您的回复。

【问题讨论】:

  • 什么版本的 Solr?您可能想查看Solr sparse faceting,它是为与您的查询表明您正在使用的内容非常相似而创建的。

标签: solr solrcloud


【解决方案1】:

您同时处理许多复杂的事情:日期范围、突出显示、分面和分布式搜索。 (非solrcloud,貌似)

不过,50k 文档索引的 10 秒对我来说似乎真的很慢。尝试有选择地删除搜索的各个方面,看看是否可以找出导致速度变慢的部分,然后专注于该部分。我希望您可以找到更简单的快速查询,即使它们匹配很多文档。

无论哪种方式,请查看https://wiki.apache.org/solr/SolrPerformanceProblems#RAM

那里有很多有用的提示,但排名第一的性能问题通常是内存不足,尤其是对于大型索引。

【讨论】:

    【解决方案2】:

    检查您在 solr 上有多少段 段数越多,查询响应越差 如果你没有在你的 solrConfig.xml 中设置合并因子,那么你可能会有接近 40 个段,这对查询响应时间很不利 相应地设置合并因子 如果没有要添加的新文档,请设置它 2

    合并因子 mergeFactor 大致确定了段的数量。 mergeFactor 值告诉 Lucene 在将它们合并为单个段之前要构建多少个相同大小的段。它可以被认为是数字系统的基础。 例如,如果您将 mergeFactor 设置为 10,则每 1000 个(或 maxBufferedDocs)文档添加到索引中,就会在磁盘上创建一个新段。当添加第 10 个大小为 1000 的段时,所有 10 个将合并为一个大小为 10,000 的段。当添加了 10 个大小为 10,000 的此类段时,它们将合并为包含 100,000 个文档的单个段,依此类推。因此,任何时候,每个索引大小的段都不会超过 9 个。 这些值在 solrconfig.xml 的 mainIndex 部分中设置(忽略 indexDefaults 部分): 合并因子权衡 高价值合并因子(例如,25): 优点:通常会提高索引速度 缺点:合并频率较低,导致集合包含更多索引文件,这可能会降低搜索速度 低值合并因子(例如,2): 优点:索引文件数量较少,可加快搜索速度。 缺点:更多的段合并会减慢索引速度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2012-03-30
      • 2017-03-10
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多