Я пытаюсь выработать стратегию реализации очень простого поиска по сайту в ASP.NET MVC и SQL Server 2008.
Действительно, все, что я хочу сделать, - это иметь возможность ранжировать результаты поиска.в зависимости от того, сколько раз искомое слово или фраза были найдены на веб-странице.Я пытался сделать это с помощью LINQtoSQL, но столкнулся с множеством проблем, когда некоторые команды LINQ не имеют эквивалента SQL.Это было несколько месяцев назад, поэтому я не помню конкретных ошибок.
Итак, я просто пытаюсь найти подход.Я думаю следующее:
Подход 1: Мне, вероятно, следует написать программу для паука сайта и каким-то образом проиндексировать текст сайта - я думаю, что я должен сохранить информацию втаблица как:
Затем я могу запросить это и оценить в зависимости от того, сколько раз это словосвязан с определенным URL.Но потом я понял, что этот метод полностью сломался бы, если бы пользователь искал фразу.
Подход 2: Затем я задумался об использовании SPROC для создания временной таблицы сзапись для каждого URL, которая каким-то образом анализирует текст и определяет, сколько раз фраза или слово появлялись в каждом отдельном URL.и тогда мы вернем результаты из временной таблицы.Я думаю, временная таблица будет выглядеть примерно так:
- ID
- SearchText
- URL
- Частота
А потом select * from temptable order by Frequency asc
или что-то в этом роде.
Однако я не уверен, что SPROC способны анализировать такой текст или возможен одновременный поиск.
Iищу что-то очень легкое.Мне не очень интересно использовать Lucene, Solr или что-то в этом роде, потому что кривая обучения кажется очень крутой, а возможности этих приложений намного больше, чем мне нужно.
Любые мысли о том, как мне следует к этому подходитьпроблема?Есть ли другой подход, который я должен рассмотреть?