SOLR 6.6: подсказчик с контекстной фильтрацией не дает результата - PullRequest
0 голосов
/ 29 июня 2018

Ранее я предлагал конфигурацию, которая работала без фильтрации контекста:

<searchComponent name="suggest" class="solr.SpellCheckComponent">
        <str name="queryAnalyzerFieldType">text_spell</str>
        <lst name="spellchecker">
            <str name="name">default</str>
            <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
            <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
            <str name="field">autosuggest_en</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
            <str name="accuracy">0.35</str>
        </lst>
        <lst name="spellchecker">
            <str name="name">de</str>
            <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
            <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
            <str name="field">autosuggest_de</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
            <str name="accuracy">0.35</str>
        </lst>
        <lst name="spellchecker">
            <str name="name">en</str>
            <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
            <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
            <str name="field">autosuggest_en</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
            <str name="accuracy">0.35</str>
        </lst>
    </searchComponent>

    <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
        <lst name="defaults">
            <str name="spellcheck">true</str>
            <str name="spellcheck.dictionary">default</str>
            <str name="spellcheck.onlyMorePopular">true</str>
            <str name="spellcheck.count">5</str>
            <str name="spellcheck.collate">true</str>
        </lst>
        <arr name="components">
            <str>suggest</str>
        </arr>
    </requestHandler>

В консоли администратора Solr мне удалось получить результаты:

enter image description here

Теперь я создал конфигурацию, включая фильтрацию контекста:

<searchComponent name="hmmSuggest" class="solr.SuggestComponent">
        <lst name="suggester">
            <str name="name">default</str>
            <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="field">autosuggest_en</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="suggestAnalyzerFieldType">string</str>
            <str name="buildOnStartup">true</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
        </lst>
        <lst name="suggester">
            <str name="name">de</str>
            <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="field">autosuggest_de</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="suggestAnalyzerFieldType">string</str>
            <str name="buildOnStartup">true</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
        </lst>
        <lst name="suggester">
            <str name="name">en</str>
            <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="field">autosuggest_en</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="suggestAnalyzerFieldType">string</str>
            <str name="buildOnStartup">true</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
        </lst>
    </searchComponent>

    <requestHandler name="/hmmSuggest" class="solr.SearchHandler" startup="lazy">
        <lst name="defaults">
            <str name="suggest">true</str>
            <str name="suggest.count">5</str>
            <str name="suggest.dictionary">default</str>
            <str name="suggest.collate">true</str>
            <str name="suggest.onlyMorePopular">true</str>
        </lst>
        <arr name="components">
            <str>hmmSuggest</str>
        </arr>
    </requestHandler>

Но я не получаю результатов.

enter image description here

Нужно ли добавить что-то еще в мою конфигурацию, или в чем может быть проблема, или как я могу проверить наличие проблемы?

Тест 1

Я попытался использовать компонент проверки правописания класса вместо подсказки, но я все еще получаю пустые результаты.

<searchComponent name="hmmSuggest" class="solr.SpellCheckComponent">
        <str name="queryAnalyzerFieldType">text_spell</str>
        <lst name="spellchecker">
            <str name="name">default</str>
            <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="field">autosuggest_en</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="suggestAnalyzerFieldType">string</str>
            <str name="buildOnStartup">true</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
            <str name="accuracy">0.35</str>
        </lst>
        <lst name="spellchecker">
            <str name="name">de</str>
            <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="field">autosuggest_de</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="suggestAnalyzerFieldType">string</str>
            <str name="buildOnStartup">true</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
            <str name="accuracy">0.35</str>
        </lst>
        <lst name="spellchecker">
            <str name="name">en</str>
            <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="field">autosuggest_en</str>
            <str name="contextField">availableForWarehouses_string_mv</str>
            <str name="suggestAnalyzerFieldType">string</str>
            <str name="buildOnStartup">true</str>
            <str name="buildOnCommit">true</str>
            <str name="buildOnOptimize">true</str>
            <str name="accuracy">0.35</str>
        </lst>
    </searchComponent>

    <requestHandler name="/hmmSuggest" class="solr.SearchHandler" startup="lazy">
        <lst name="defaults">
            <str name="spellcheck">true</str>
            <str name="spellcheck.count">5</str>
            <str name="spellcheck.dictionary">default</str>
            <str name="spellcheck.collate">true</str>
            <str name="spellcheck.onlyMorePopular">true</str>
        </lst>
        <arr name="components">
            <str>hmmSuggest</str>
        </arr>
    </requestHandler>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...