Полнотекстовый поиск в базе данных SQL Server с использованием стандартных модификаторов (+, -, "" и т. Д.) - PullRequest
0 голосов
/ 22 июня 2011

Я использую SQL Server FreeTextTable для поиска релевантности в проекте.Он работает очень хорошо для большинства стандартных поисков, таких как:

  • диван-кресло - для поиска одного / или обоих
  • "диван-кресло" - чтобы найти фразу" диван-кресло "

Я также хотел бы добавить некоторые логические возможности поиска, такие как:

  • диван и кресло - для поиска как дивана, так и кресла
  • диван-кресло - для поиска дивана, но не стула
  • "зеленый диван " или " красный стул " для поиска" зеленого дивана "или" красного стула "

Нужно ли мне делать фразу LIKE / NOT LIKEв поиске, а затем сделать FreeTextTable для ранжирования?Есть ли другой способ сделать это?

1 Ответ

1 голос
/ 22 июня 2011

Я думаю, что LIKE / NOT LIKE - самый простой способ сделать это. Возьмите строку, которую вы анализируете для поиска, например «ИЛИ» и «И», и постройте свой запрос динамически. Точно так же, если вы встретите '-', создайте оператор NOT. Я не думаю, что это будет слишком сложно.

Если вы хотите проверить некоторые из дополнительных параметров, доступных для поиска SQL, я знаю, что MySQL поддерживает строки регулярных выражений, вы можете прочитать все об этом здесь: http://dev.mysql.com/doc/refman/5.1/en/regexp.html

...