В настоящее время я работаю над функцией автозаполнения / подсказки.Из-за правильного функционирования приложения я вынужден использовать функциональность Context Filtering , и все работает нормально.
Однако у меня проблема с алгоритмом и полученными результатами.Можно ли отобразить предлагаемые результаты из введенного нами слова в соответствии с порядком введенных букв?
solrconfig.xml:
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
<str name="suggest.dictionary">mySuggester</str>
<str name="suggest.cfq"></str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">BlendedInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">title_suggest</str>
<str name="buildOnStartup">false</str>
<str name="contextField">suggestionsfilter</str>
<str name="suggestAnalyzerFieldType">text_general</str>
</lst>
</searchComponent>
Я знаю, что только AnalyzingInfixLookupFactory и BlendedInfixLookupFactory в настоящее время поддерживают подсказку solr с Context Filtering , но, возможно, кто-то из вас изменил конфигурацию и получил результаты, как я хочу, например:
{
"responseHeader": {
"status": 0,
"QTime": 1
},
"suggest": {
"iiifSuggester": {
"te": {
"numFound": 1,
"suggestions": [
{
"term": "test",
"weight": 0,
"payload": ""
}]}}}
}
Но на самом деле, яполучил что-то вроде этого:
{
"responseHeader": {
"status": 0,
"QTime": 1
},
"suggest": {
"iiifSuggester": {
"te": {
"numFound": 1,
"suggestions": [
{
"term": "Suggest test result",
"weight": 0,
"payload": ""
}]}}}
}
Большое спасибо за ваш ответ
Kind Regerds, Wojciech