Ошибка нехватки памяти при использовании групповой огранки - PullRequest
0 голосов
/ 25 сентября 2018

У меня индекс 40M документов, а конфигурация машины - 72 ядра, 500 ГБ ОЗУ и накопители 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>

Есть идеи, как мы можем решить эту проблему?

1 Ответ

0 голосов
/ 25 сентября 2018

Производительность jr-фасета Solr в поле строкового типа неудовлетворительная с исходной реверсной версией API-интерфейса json-фасета.JSON-facet api хорошо работает с полями int / long / double.

Пожалуйста, пройдите этот список рассылки solr, если это поможет!

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

...