Возможно, это не совсем та же ситуация, что и у вас, но она может вам помочь.
Я разработал систему результатов поиска на основе релевантности для большой системы управления контентом, которую я разработал на своей работе.
Контент содержит заголовок, контент и поле скрытых ключевых слов (слова, которые должны использоваться для поиска, но не включаются в заголовок или контент).[есть намного больше полей, но эти три пригодны для демонстрации концепции]
Когда контент добавляется, он индексируется: удаляются некоторые не буквенно-цифровые символы, каждое слово ставится в скобки (т.е.Педагог, образование и т. д. индексируются как одно и то же слово), некоторые слова преобразуются в другое на основе некоторых внутренних правил, а затем все они сохраняются в индексе.
Когда поиск выполняется, система выполняетто же самое, что и выше для каждого ключевого слова (удаляет нежелательные символы, основание, преобразование на основе внутренних правил).
Затем система получает список содержимого, в котором есть каждое из проанализированных поисковых слов в любом из этих полей.
Затем мой код анализирует каждый из подходящих результатов: сначала он ищет все ключевые слова, последовательно существующие в одном из полей;и если он не находит поисковую фразу, он затем итеративно [составленное слово] ищет меньшие группы ключевых слов, пока не будет найден (т. е. если введено 4 поисковых слова, он сначала пробует все 4, затем 3, затем 2, затем 1, еслине все они найдены вместе)
Исходя из того, сколько ключевых слов было найдено последовательно, система применяет оценку к результату поиска.Более высокие оценки даются в зависимости от того, были ли найдены ключевые слова в поле заголовка, содержания или ключевых слов (это потребовало некоторой тонкой настройки), а также от того, насколько близко они были найдены близко к началу поля.
Результаты затем передаются клиенту на основе этого показателя.
Система работает очень хорошо в нашей ситуации, особенно часть сгруппированных ключевых слов дает хорошие результаты.
Вы можете использоватьаналогичная система в вашей ситуации.При поиске «ladder» перед «Snakes and Ladders Game» можно было бы заказать такой продукт, как «Ladder - extra large».
Для «computer console» можно добавить подобные термины в поле скрытых ключевых слов.
Обратите внимание, что для анализа списка на релевантность требуется немного ресурсов сервера, поэтому этот тип системы подойдет только там, где имеется достаточная инфраструктура или если список контента невелик.