Проверка орфографии Solr - объедините правильные слова с предложенными словами

Мы используем Solr 6.1.0 и Solrnet в качестве нашего клиентского инструмента для связи с solr.

Когда мы пытаемся ввести слова «Lion Knig» в наш поиск, программа проверки орфографии Solr автоматически исправила «Knig» как «King» и получила «наборы результатов» для «Lion King».

На нашем экране мы должны показать отображаемый текст как «Показаны результаты для Lion King вместо LION Knig». Solr исправил Knig как "King", что ожидалось, и возвращает предлагаемый текст "king" вместе с исходным текстом запроса "Lion Knig" и правильным набором результатов. Проблема здесь в том, что когда мы используем предлагаемый текст, он создает неправильное впечатление для пользователя он ищет только "КОРОЛЯ".

Есть ли какое-либо свойство в конфигурации solr, которое включает в себя полную исправленную строку, такую ​​как «Король Лев»?

Прикрепленное изображение для вашей наглядности.

Проверьте изображение на предмет проблемы.


person Mahanth Madarampalli    schedule 05.04.2020    source источник
comment
Параметр spellcheck.collate может использоваться для возврата запроса с внесенными исправлениями орфографии. Проверьте, дает ли он желаемый результат.   -  person MatsLindh    schedule 06.04.2020
comment
мы установили spellcheck.collate = true, но не вернули весь исправленный текст. поступают все предложения. можешь сказать мне, как вернется текст   -  person Mahanth Madarampalli    schedule 07.04.2020


Ответы (1)


Я ничего не знаю о Sorlnet, но обычно должен быть способ получить CollationQuery из SpellcheckResponse. В SolrJ есть способ получить CollatinQueryString следующим образом:

SpellCheckResponse spellCheckResponse = queryResponse.getSpellCheckResponse();
            CollationQuery collationQuery = new CollationQuery(spellCheckResponse);
            collationQueryString = collationQuery.getCollatedQueryString();

Тогда вы сможете вернуть эту queryString своему интерфейсу.

Надеюсь это поможет.

person MJ1986    schedule 08.04.2020