Stemming применяется как во время запроса , так и время индекса, поэтому я не думаю, что есть простой способ выполнить то, что вы пытаетесь сделать. Тем не менее, в зависимости от количества результатов в вашей базе данных может быть возможно сделать это, используя комбинацию огранки и выделения. Выделенный термин будет всем совпадающим термином, а не основанным термином (так, например, термином «стебель» может быть «связанный», но выделенными терминами будут «связанный», «ассоциация», «ассоциации» и т. Д.). Возможно, вы могли бы сделать следующее:
?q=keyword&facet=true&facet.field=myfield&&facet.limit=20hl=true&hl.fl=myfield&hl.fragsize=0&rows=10
Получение 10 строк и проверка выделенных результатов (по умолчанию они подсвечиваются с помощью тегов <em>
</em>
, но вы можете изменить это с помощью hl.simple.pre
и hl.simple.post
- например, с помощью &hl.simple.pre=[&hl.simple.post=]
будет оберните совпадающие термины в квадратные скобки), по крайней мере, следует привести образец «оригинальных» совпадающих терминов. hl.fragsize=0
возвращает все поле вместе с выделением.
Надеюсь, это поможет. Подробнее о выделении параметров вы можете прочитать здесь:
http://wiki.apache.org/solr/HighlightingParameters