Лучшие практики для создания поискового приложения?

Я скоро начну простой проект поиска и поиска данных. По сути, одна из них «помещает мою огромную электронную таблицу Excel в базу данных, создает для нее веб-интерфейс и делает ее доступной для поиска».

Одна вещь, которая меня беспокоила, это реальная логика поиска, которая будет использоваться, когда пользователь вводит некоторые критерии. Я представляю интерфейс поиска с текстовым полем и несколько других инструментов фильтрации - выпадающие списки и флажки и тому подобное.

Хотя это дает мне очень сильный, детальный контроль над фильтрацией, которую я могу выполнить, мне интересно, что думают SO о фактическом выполнении поиска. Здесь я буду использовать ASP.NET, MS SQL Server и Linq-To-SQL, так что помните об этих технологиях.

Наверху, я думаю, я бы сделал что-то вроде:

var results = from s in db.Stuff
              where (s.Prop1.Contains(textFilter) ||
                     s.Prop2.Contains(textFilter) ||
                     s.Prop3.Contains(textFilter)) &&
                     checkbox1.IsChecked ?
                          s.Prop4.ToLower().Equals(combobox1.Text) : true
              select s;

Вот что я знаю:

Как сделать группировку и присоединиться при необходимостиЯ могу использоватьСодержит() метод по отдельным свойствам для генерации SQLЛЮБИТЬ запросыЯ могу фильтровать вещи свойство за свойством, построив свою логику поиска, как указано выше.

Вот что я спрашиваю:

Есть ли способ поиска по всем свойствам (без вытягивания всех объектов в память - я предполагаю, что это означает создание списка свойств каждого объекта с отражением, их упорядочение и последующую проверку)? Если нет, то это кажется невероятно громоздким, так как мне пришлось бы создавать новую логику для каждого нового свойства, которое я мог бы добавить. Что-то вродеs.Contains (TextFilter) в вышесказанном было бы идеально.Как работает SQLЛЮБИТЬ запрос на самом деле работает? Это то, что я хочу сделать?Существует ли стандартный способ реализации правил поиска, таких как строки в кавычках, для полных и логических операторов, таких какА ТАКЖЕ а такжеИЛИ ЖЕ? Я был бы удивлен, если бы каждое приложение, которое их реализовало, делало это с помощью собственной логики синтаксического анализа.Я лаю не на том дереве? Я что-то пропустил?