Разбор И, ИЛИ запрос для формулировки SQL - PullRequest
0 голосов
/ 11 января 2010

Я разрабатываю мини-поисковик и хочу реализовать функцию поиска на основе логических операторов И ИЛИ ...

У меня проблемы с анализом запроса, содержащего AND, OR, NOT ... особенно, когда речь идет о скобках ... (кошка или собака) нет (велосипед не Майк)

Для простых запросов И и ИЛИ, очевидно, это слишком просто, и я разобрался, как сформулировать SQL-запрос, но когда он становится таким сложным, я теряюсь !!!

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

Я прошу прощения за мой последний вопрос, который не был действительно ясен, я надеюсь, что в этот раз у меня все лучше.

Ответы [ 3 ]

2 голосов
/ 11 января 2010

Я бы порекомендовал посмотреть на генератор лексеров / парсеров, например ANTLR . Простая грамматика должна быть в состоянии разобраться с вами. Для такой вещи может даже существовать существующая грамматика .

1 голос
/ 11 января 2010

Взгляните на пример searchparser.py из проекта pyparsing .

Здесь показан способ реализации:

  • И,
  • ИЛИ,
  • НЕ,
  • группировка и
  • групповые символы.

Все сделано в 293 строках кода (включая комментарии и тесты) ...

0 голосов
/ 11 января 2010

Если вы используете MySQL, вы можете использовать встроенный логический поиск:

http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html

...