Зачем проектировать свой, плохой поиск (потому что не так-то просто найти специалистов, способных сделать хороший, они все в Гугле давно работают), когда может быть можно, например купить яндекс-сервер для локальной сети? Или он вам не подойдет?
Вот смотрите, например, вы пишете поиск по медицинским книгам. Там часто один и тот же термин, во-первых, может по-разному писаться, на латыни или на русском, через букву е или э, и т.д. Плюс, некоторые авторы называют вещь одним словом, а другие — другим. И вряд ли вы сделаете нормальный поиск с учетом таких вещей.
Или разбиение на слова. Многие системы при индексации разбивают текст на слова. Разбивать ли текст по знаку «минус»? будет ли находиться слово, разбитое переносом: «обык-новенный»? Будет ли разбито на части слово RMT-2600? И будет ли поиск по нему работать? Будут ли находиться слова с опечатками? «обыкновеный» и «Обыкновенный»? А поиск цифр (кодов), если в тексте он в виде 3-123-124, а пользователь вводит без дефисов?
Отдельная песня — поиск фамилий. Johansonn, Йохансон, Иогансон, Йохансонн. Обработка юникодных символов вроде ́́́a?
Сможете ли вы индексировать например DOC, PDF и другие форматы, которые используются.
А сделать поиск, который ищет точные вхождения, разбивая текст по пробелам, приводя в нижний регистр и делая примитивный стемминг, ну это любой может, только вот не уверен, что он будет давать точные результаты.
Также, есть проблема ранжирования. Искомое слово встречается в 300 документах. Естественно, все 300 никто смотреть не будет, будут смотреть первые несколько десятков, вопрос, как ранжировать эти 300 документов, чтобы вначале шли более релевантные?
Если в запросе несколько слов, надо ли искать каждое слово отдельно? Или обязательно присутствие всех слов на определенном расстоянии?
Вот смотрите, сколько сложнорешаемых проблем выскакивает после 10 минут раздумий.
Я бы понял, если у вас задача распилить какой-нибудь бюджет, но вы пишете «чтобы пользователи смогли быстро и эффективно выполнять поиск по базе, не имея знаний в указанной области» — такой поиск просто так не сделать. Надо делать разные варианты, изучать фидбек, сохранять неудачные поиски, делать эксперименты, тесты, и т.д.
А то, что пишут выше, про LIKE % и Windows Search, вообще ничего, кроме огорчения не вызывает.
И вам не нужны какие-то знания по архитектуре и базам данных на этом этапе. Очевидно, что должен быть какой-то компонент, извлекающий структурированный (разбитый на поля) текст из исходных документов, компонент, индексирующий их, компонент, ищущий по созданному индексу и компонент, отображающий найденные документы в удобном виде, подсвечивающий слова в них (если получится).
То, что в вашем вопросе не упомянуты слова «индекс», «ранжирование» и прочее, меня настораживает.
Вы, кстати, можете посмотреть, как устроена посиковая система sphinx, но я сомневаюсь, что сфинкс сам по себе способен решить описанные мной проблемы. Он скорее способен выполнить (средненько) роль индексирующего и ищущего компонентов.