Вместо использования компонента проверки орфографии вы можете использовать сам компонент подсказки.
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str> <!-- org.apache.solr.spelling.suggest.fst -->
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str> <!-- org.apache.solr.spelling.suggest.HighFrequencyDictionaryFactory -->
<str name="field">name</str>
<str name="weightField">price</str>
<str name="suggestAnalyzerFieldType">text_general</str>
<int name="maxEdits">2</int>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="df">text</str>
<str name="suggest">true</str>
<str name="suggest.count">10</str>
<str name="suggest.dictionary">mySuggester</str>
</lst>
<arr name="last-components">
<str>suggest</str>
</arr>
</requestHandler>
Примечание: AnalyzingInfixLookupFactory также позволяет искать инфиксы. Предположим, что ваш элемент поиска Squash , а пользователь вводит uash , Squash будет предоставлен в качестве предложения.
FuzzyLookupFactory позволит вам предоставить подсказку, даже если пользователь допустит орфографическую ошибку.
Это изменения, которые нужно сделать в файле solrconfig.xml, создание экземпляра из php хорошо объяснено и в других ответах на этой странице. Поэтому я пропускаю эту часть. Надеюсь, это поможет.
РЕДАКТИРОВАТЬ : Вам также нужно будет написать службу подсказок в Service.php , которая очень похожа на службу поиска, если вы хотите вместо этого создать экземпляр как $result = $solr->**suggest**( 'har', 0, 10, $params );
из $result = $solr->**search**( 'har', 0, 10, $params );