Я хотел бы реализовать расширенный поиск для моего проекта.
В настоящее время поиск использует все строки, которые вводит пользователь, и создает одно большое расхождение с критериями API.
Это отлично работает, но теперь я хотел бы реализовать больше функций: AND, OR и скобки ()
Мне сложно разобрать строку - и построить критерии из строки. Я нашел этот вопрос Stackoverflow , но это не очень помогло (он не дал понять, чего хочет).
Я нашел еще одну статью , но она поддерживает гораздо больше и выплевывает SQL-операторы.
Еще одна вещь, о которой я часто упоминал, - это Lucene, но я не уверен, поможет ли это мне.
Я немного искал и нашел Lucene.Net WhitespaceAnalyzer и QueryParser.
Он изменяет поиск A И B ИЛИ C на что-то вроде + A + B C, что является хорошим шагом в правильном направлении (плюс он обрабатывает скобки).
Следующим шагом будет преобразование строки в набор союзов и дизъюнкций.
Пример Java, который я обнаружил , использовал построитель запросов, который я не смог найти в NHibernate.
Есть еще идеи?