SQL Server и регулярные выражения - PullRequest
5 голосов
/ 27 февраля 2010

Что будет лучше среди следующих вариантов?

  1. Регулярные выражения в поисках SQL Server, поскольку новые версии поддерживают объекты CLR?
  2. Полнотекстовый поиск?
  3. Lucene.net в сочетании с SQL Server?

Наша база данных будет содержать миллионы и миллионы записей, и мы будем предоставлять возможность поиска, подобную Google, и, подобно поиску в Google, мы будем искать только определенные категории.

Пожалуйста, помогите.

Ответы [ 3 ]

6 голосов
/ 28 февраля 2010
  1. Регулярные выражения хороши, если ваши данные маленькие, очень маленькие.

  2. Полнотекстовый поиск с использованием SQL - хороший выбор. Мне лично не нравится эта опция, потому что синтаксис поиска не так выразителен, как Lucene.Net. Но в любом случае это хороший способ быстро запустить полнотекстовый поиск, не вдаваясь в подробности.

  3. Lucene.Net дает вам больше контроля / ответственности за создание и ведение индекса, поэтому, если это вас не пугает, Lucene.Net дает ваши высококачественные результаты, и вы можете многое с этим сделать. Вы можете настроить и настроить практически все, чтобы ваша поисковая система работала так, как вы хотите, чтобы она работала. Я бы лично выбрал Lucene.Net.

В сортировке.

  1. не используйте регулярные выражения.
  2. Полнотекстовый поиск SQL Server - это быстрый и простой способ получить достойный поиск, не прибегая к технической поддержке.
  3. Lucene.Net является лучшим по качеству результатов, но требует, чтобы вы прошли некоторое обучение (если вы новое).
3 голосов
/ 27 февраля 2010

Для поиска больших объемов данных требуется полнотекстовый индекс. Регулярные выражения более гибкие и могут дать вашим пользователям больше возможностей для выражения своих запросов, но это будет медленнее.

Lucene - хороший выбор, но вы можете обнаружить, что встроенные функции, которые SQL Server уже удовлетворяет вашим потребностям.

2 голосов
/ 28 февраля 2010

Несмотря на то, что я поклонник SQL Server, я бы предпочел lucene.net полнотекстовому поиску SQL Server.

...