Solr: сборка словаря подсказок создает огромные временные файлы - PullRequest
0 голосов
/ 06 июля 2018

Я использую sunspot-solr 2.3.0 для моего приложения rails. Я реализовал подсказку (AnalyzingSuggester) в Solr для автозаполнения. У меня есть база данных около 11 миллионов записей с 5 полями, проиндексированными Solr.

При создании словаря предложений в моей папке / tmp / создаются два файла:

  • AnalyzingSuggester1784590344675447619.input (число варьируется). Этот файл становится все больше и больше, пока в итоге у меня не останется свободного места, а затем он исчезнет?

  • AnalyzingSuggester8456478182934503596.sorted (число также может варьироваться). Этот файл 0 кб.

Я много искал, но не могу понять, что именно происходит, и если / как я должен предотвратить это странное поведение. Это нормальная часть сборки словаря? Это просто логирование?

1 Ответ

0 голосов
/ 19 июля 2018

У меня такая же проблема с моим solr 6.0.1. Файл tmp взрывается бесконечно, пока жесткий диск не заполнится.

Мой индекс содержит только около 2500 документов.

Компонент поиска:

<searchComponent class="solr.SuggestComponent" name="autoSuggest">
        <lst name="suggester">
            <str name="name">analyzingSuggester</str>
            <str name="lookupImpl">AnalyzingLookupFactory</str>
            <str name="storeDir">analyzing_suggestions</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="buildOnCommit">false</str>
            <str name="buildOnStartup">false</str>
            <str name="field">text_suggest_auto</str>
            <str name="suggestAnalyzerFieldType">text_suggestion_auto</str>
        </lst>
    </searchComponent>

Обработчик запроса:

<requestHandler class="solr.SearchHandler" name="/suggestAuto" startup="lazy" >
        <lst name="defaults">
            <str name="suggest">true</str>
            <str name="suggest.dictionary">analyzingSuggester</str>
            <str name="suggest.onlyMorePopular">true</str>
            <str name="suggest.count">10</str>
            <str name="suggest.collate">true</str>
        </lst>
        <arr name="components">
            <str>autoSuggest</str>
        </arr>
    </requestHandler>

Поле:

<fieldType name="text_suggestion_auto" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.WordDelimiterFilterFactory" 
            generateWordParts="1" 
            generateNumberParts="1" 
            preserveOriginal="1"/>  
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_general.txt" format="snowball" />
            </analyzer>
            <analyzer type="query">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_general.txt" format="snowball" />
            </analyzer>
    </fieldType>
...