solr - Solr Suggest Component 和 OutOfMemory 错误
问题描述
我在 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 错误。我不知道如何使用当前设置进行这项工作。谁能解释为什么会这样?我该如何解决这个问题?
解决方案
在邮件列表中,关键信息是 OOME 是由于 java 堆空间造成的。
这意味着您需要增加堆大小或减少 Solr 所需的堆数量。减少堆需求并不总是可能的,但这里有一些想法:
https://wiki.apache.org/solr/SolrPerformanceProblems#Reducing_heap_requirements
推荐阅读
- regex - 匹配字符串中前面有品牌的型号名称
- javascript - Vizframe UI5 饼图 Odata 绑定问题
- ios - 输入时间时显示键盘而不是仅旋转,iOS 14 Swift 5
- javascript - 如何使用javascript用超链接替换文本?
- c - 为什么 puts 函数会打印从文件中读取的最后一行并再一次存储在数组中?
- android - 已签名的 APK 网络问题 - 未签名的 apk 能够读取 API,但已签名的 apk 继续加载
- python - CSV 文件 - 如何通过用户输入替换一行数据?
- python - 我似乎找不到将滚动条添加到我的 tkinter 元素周期表的方法
- python - 机器人阅读其他用户增加了反应
- ruby-on-rails - 活动管理员表单中的 has_one 关系