3

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

Что пришло в голову:

  • гуглить на серверной стороне по своему же сайту и выводить список страниц с совпадениями.
  • связать каждый товар с коллекцией тегов. В каждом поисковом запросе разбивать запрос на теги. Искать товары с максимальным количеством совпадений связанных тегов с тегами из поискового запроса.

Есть ли готовые библиотеки для умного поиска в базе данных? Или какие-то продвинутые подходы для поиска информации на сайте? Сайт на asp.net mvc

Kunoichi
  • 2,333
  • ищи по вхождению слова шланг оно везде есть чет не понятна проблема – Саске Jan 12 '18 at 15:14
  • 1
    Во-первых, гуглить по своему сайту хорошая идея, многие так делают :) Во-вторых, вот вам ключевая фраза для погуглить: движки полнотекстового поиска – andreymal Jan 12 '18 at 15:18
  • 1
    См. https://ru.stackoverflow.com/a/532675/184217 – Alexander Petrov Jan 12 '18 at 15:25

2 Answers2

1

Нужно воспользоваться полнотекстовым поиском на пример elasticsearch (Отдельная база данных. Если будешь искать на стороне back-end производительности не будет(

1

я на сайте editpress.ru(asp.net mvc,ms sql server 2012) пользуюсь full-text search поднятой на стороне ms sql server. https://technet.microsoft.com/ru-ru/library/ms142547(v=sql.105).aspx . Также я пробовал на стороне asp.net серверного кода использовать lucene.net, но в итоге вцелом full-text search неплох.