【问题标题】:Out of memory error on using group faceting使用组分面时出现内存不足错误
【发布时间】:2018-09-25 14:23:51
【问题描述】:

我有一个 40M 文档的索引,机器配置是 72 核、500GB RAM 和 NVME 驱动器。

我在多值字段上使用 JSON 分面,无论匹配的文档数量如何,它都能正常工作。但是,如果我使用独特的函数应用组分面,它会抛出内存错误并降低我的 solr(当匹配的文档数量> 500k 时)。

我使用以下语法进行组分面。

json.facet={
   categories:{
     type : terms,
     field : cat,
     sort : { x : desc},
     facet:{
       x : "unique(type)"     
    }
   }
 }

以下是我正在使用的示例架构

<schema>
    <types>
        <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"  />

        <fieldType name="lower_string" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
            <filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
        </analyzer>
        </fieldType>
    </types>

    <fields>
        <field name="cat"  type="lower_string" indexed="true" stored="true" multiValued="true"  />
        <field name="type" type="string" indexed="true" stored="true" required="false" docValues="true" />
    </fields>

    <uniqueKey>id</uniqueKey>
</schema>

知道如何解决这个问题吗?

【问题讨论】:

  • cat和type的字段类型有哪些?
  • @MatsLindh: cat 是 text 字段,type 是 string 字段
  • 请包括字段的完整定义、架构版本和 Solr 版本 - 这与如何完成分面有关。而TextFields不能使用docValues IIRC,而docValues通常是内存占用过多的解决方案。
  • @MatsLindh:我已经用架构更新了我的问题。
  • 尝试为类别使用单独的字段,将字段定义为字符串,并在将内容索引到字段中之前进行处理。改为使用它进行分面,并确保为字段类型启用 docValues。对于之前只有一个小写过滤器的 KeywordTokenized 字段,RemoveDuplicatesTokenFilterFactory 也不应该是必需的。

标签: solr grouping facet


【解决方案1】:

使用 json-facet API 的初始发布版本时,Solr json-facet 在字符串类型字段上的性能很差。 JSON-facet api 在 int/long/double 字段上表现良好。

如果有帮助,请通过这个 solr 邮件列表讨论!

http://lucene.472066.n3.nabble.com/JSON-facet-performance-for-aggregations-td4332617.html

【讨论】:

  • 但是我知道这一点,我使用的是最新的 solr 版本,即 7.4,预计这应该不是问题。即使这是问题所在,性能也应该很差,但是这里占用了完整的内存,我不确定为什么要影响内存。
猜你喜欢
  • 2016-01-09
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
相关资源
最近更新 更多