Solr: ускорение документов с полным словом во время частичного совпадения

У меня есть запрос SOLR, который поддерживает как точные, так и частичные совпадения. Термины запроса имеют соответствующие коэффициенты форсирования, когда точные совпадения имеют более высокий импульс по сравнению с частичными совпадениями.

Однако в рамках частичных совпадений мы хотим определить факторы повышения таким образом, чтобы

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

Например: если пользователь ищет строку «Annie Hall», тогда документы, содержащие такие значения, как « Tanner Hall », « Hall Pass » и т. Д., Должны иметь более высокий вес (приоритет) по сравнению со значениями, такими как « Хэллоуин », « Собака, спасшая Хэллоуин ». Все они являются частичными, но «Зал» появляется как отдельное слово в «Tanner Hall» и «Hall Pass», и поэтому у них должно быть больше очков.

Пожалуйста помоги.

С Уважением,

0
nl ja de
как вы формируете свой запрос как для частичных, так и для полных матчей? каково ваше полевое определение?
добавлено автор Jayendra, источник

1 ответы

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

Если это так, вы всегда можете иметь два поля.

  • Необязательное поле с более высоким повышением - текст
  • Нейтрализованное поле с нормальным boost - text_ngram

например Для dismax - text ^ 2 text_ngram приведет к тому, что матчи префекта будут иметь более высокий импульс, чем частичные совпадения.
Помните, если есть полное совпадение, также будет частичное совпадение, поэтому его совокупный импульс.

0
добавлено