Немного больше конкретики вашей конкретной проблемы было бы хорошо. Есть много разных техник, которые вы можете использовать. Многие из них управляются другими частями данных. Конечно, вы можете использовать Lucene и создавать свои собственные индексы. Для многих языков есть привязки к люцену. Поднимаясь вверх, существует также проект Solr , который представляет собой Lucene с множеством инструментов и дополнительными функциями. Это может быть больше в соответствии с тем, что вы ищете.
Намерение сложно, и большинство современных поисковых систем полагаются на статистическое намерение, чтобы помочь в упорядочении результатов. Вы всегда можете воспользоваться этой кнопкой и сохранить текст запроса, который приведет к полезным документам. Затем вы можете добавить слой информации в указатель, чтобы увеличить конкретные слова или фразы и помочь им указывать на определенные документы.
О чем подумать ... Сколько документов? Какова средняя длина? Они часто обновляются? Что пользователи делают с документами? Как выглядит распространение уникальных слов в документах? (Проще просто сопоставить запрос с определенным документом (ами) на основе общих уникальных функций.)
Если он есть в Интернете, вы всегда можете создать пользовательскую поисковую систему Google, которая просто ищет ваш сайт, хотя может оказаться, что это неоптимально по ряду причин.
Вы всегда можете начать с простого индекса и постепенно делать его более сложным, общаясь с пользователями и собирая данные.