Solr建议组件和OutOfMemory错误

时间:2018-06-11 16:20:12

标签: solr solrcloud solr5

我在Solr 5.5中使用了Solr Suggester组件,其中包含大量地址数据。我的机器为solr分配了20Gb RAM,机器总共有32GB RAM。

我的通讯录核心有以下命名 -

"numDocs"=153242074
"segmentCount"=34
"size"=30.29 GB

我的solrconfig.xml看起来像这样 -

<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
  <str name="name">mySuggester1</str>
  <str name="lookupImpl">FuzzyLookupFactory</str>
  <str name="storeDir">suggester_fuzzy_dir</str>

  <!-- Substitute these for the two above for another "flavor"
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
    <str name=?indexPath?>suggester_infix_dir</str>
  -->

  <str name="dictionaryImpl">DocumentDictionaryFactory</str>
  <str name="field">site_address</str>
  <str name="suggestAnalyzerFieldType">suggestType</str>
  <str name="payloadField">property_metadata</str>
  <str name="buildOnStartup">false</str>
  <str name="buildOnCommit">false</str>
</lst>
<lst name="suggester">
  <str name="name">mySuggester2</str>
  <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
  <str name="indexPath">suggester_infix_dir</str>

  <str name="dictionaryImpl">DocumentDictionaryFactory</str>
  <str name="field">site_address_other</str>
  <str name="suggestAnalyzerFieldType">suggestType</str>
  <str name="payloadField">property_metadata</str>
  <str name="buildOnStartup">false</str>
  <str name="buildOnCommit">false</str>
</lst>
</searchComponent>

处理程序的定义如下 -

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy" >
<lst name="defaults">
  <str name="suggest">true</str>
  <str name="suggest.count">10</str>
  <str name="suggest.dictionary">mySuggester1</str>
  <str name="suggest.dictionary">mySuggester2</str>
  <str name="suggest.collate">false</str>
  <str name="echoParams">explicit</str>
</lst>
<arr name="components">
  <str>suggest</str>
</arr>
</requestHandler>

问题陈述

每当我尝试使用suggest.build = true url参数构建建议索引时,我最终会出现OutOfMemory错误。我不知道如何使用当前的设置来完成这项工作。任何人都可以解释为什么会这样吗?我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

在邮件列表中,关键信息是OOME是由于Java堆空间造成的。

这意味着您需要增加堆大小或减少Solr所需的堆量。并不总是可以减少堆需求,但这里有一些想法:

https://wiki.apache.org/solr/SolrPerformanceProblems#Reducing_heap_requirements