Есть сущность товара. Один товар может иметь много названий (на разных языках). Название может быть например такое: Шланг садовый economic трехслойный 1/2" 50м. Как найти такой товар по строке Шланг сад я знаю, а вот как найти товар по строкам Садовый шланг, Шланги, 50 метров шланг, трехслойный шланг и подобных я не знаю.
Что пришло в голову:
- гуглить на серверной стороне по своему же сайту и выводить список страниц с совпадениями.
- связать каждый товар с коллекцией тегов. В каждом поисковом запросе разбивать запрос на теги. Искать товары с максимальным количеством совпадений связанных тегов с тегами из поискового запроса.
Есть ли готовые библиотеки для умного поиска в базе данных? Или какие-то продвинутые подходы для поиска информации на сайте? Сайт на asp.net mvc