У меня была похожая проблема, чтобы решить. Поэтому я сохранил свои данные во многих полях:
title
keywords (upto 10 words)
abstract (a paragraph)
text (as long as you like)
Для запросов я использовал анализатор запросов dismax над полями с разными весами:
title^20
keywords^20
abstract^12
text^1
Так что, если вы
- хорошо определите свою схему данных
- используйте dismax
- определить весовые коэффициенты для ваших запросов
когда вы будете искать "Hormel Corned Beef 16 Ounces", результат, название которого "Hormel Corp", будет лучше оценен в документе, тело которого содержит "... Для блюда мы рекомендуем банку Hormel Corned Beef 16 Ounces. .. "
Редактировать комментарии ОП.
Факт ФП таков: при названии n слов первые n слов имеют значение , чем остальные.
Я предлагаю модель данных, в которой есть два поля: title_first_words
и title
. Клиентское приложение (извините, вы не можете напрямую использовать DIH) должно будет извлечь первые n слов из заголовка для сохранения в title_first_words
, а полный заголовок будет сохранен в title
.
Для поиска вы можете передать весь запрос анализатору dismax. Парсер запросов имеет тенденцию к title_first_words
как title_first_words^4 title^1
. Таким образом, первые n слов будут иметь большее значение для данного поиска.