Я изучил встроенный полнотекстовый поиск SQL 2008, а также Lucene.NET .. но я не думаю, что они будут делать то, что мне нужно. И я просто хочу убедиться, что я строю свою программу как можно эффективнее.Лучший способ частичного поиска в SQL 2008
Итак, вот сон. Я хочу иметь одно текстовое поле на странице (например, google) и разрешать пользователю вводить НИЧЕГО. И на основе их текста я буду искать 10 таблиц, чтобы найти то, что они ищут.
Пример. Моя база данных содержит тысячи мест, каждая из которых имеет несколько имен/кодов. В каждом месте есть тонны данных, связанных с ними.
Так что если пользователь хочет отобразить все местоположения с кодами, которые содержат «VM» («CD-VM01», «CD-VM02», «CD-VM03» и т. Д.), Они должны иметь возможность , Или, если они хотят найти все места в Торонто, они просто набирают Торонто. Я хочу сделать поиск максимально простым для людей. (Я обнаружил, что людям не нравится думать).
Плюс это становится проще масштабировать до большего количества параметров поиска, если я могу просто искать базу данных и не добавлять новые поля на экран поиска ,
Так что если я не использую полнотекстовый поиск (который я не могу для частичного), единственное, что я вижу, что я остался с «Like» .. это правильно? это мой единственный вариант?
Я вижу, что вы говорите, и, подумав об этом, я понимаю, что теряю время пользователя, если я ищу то, что им не интересно. пример: пользователь вводит в «0008», который им это частичный код сайта, но я бы не знал разницы, и я мог найти серийные номера, ссылочные номера и т. д. Я полагаю, что у меня может быть динамический список параметров, которые они могут искать, и все в порядке. Но я обнаружил, что FTS не поможет мне с частичным поиском. Если пользователь хочет показать все коды, содержащие «VM000» в таких кодах, как (CMVM0001, CMVM0002, CMVM0003), я хочу, чтобы они это делали – Dan
@ Dan: Я признаюсь, что не уверен, что именно вы имеете в виду, когда говорите что FTS не может выполнить частичный поиск в соответствии с вашим примером. Разве это не то, что делают ключевые слова 'CONTAINS' и' FREETEXT'? – Aaronaught
Глядя на это: http://en.wikipedia.org/wiki/SQL_Server_Full_Text_Search и из моих исследований FTS может выполнять только «Префиксные поисковые запросы», а не поиск в середине слов. – Dan