![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Умный поиск по БД вместо фильтрации. Как реализовать? [XP]
Kolan © (2009-04-09 16:08:00)Здравствуйте!
В приложении сотрудничающем с MS SQL Server 2000 нужно сделать возможность искать данные в базе. В базе результаты измерений всяких штук-дрюк :) Задача довольно простая. Данные разные в основном числа и строки.
Есть идея попробовать не делать обычной фильтрации, а заменить её поиском. То есть, вместо, скажем, выпадающего списка с фразами вроде «Измерения за сегодня» или там «Измерения, сделанные Васей» сделать просто поле ввода, которое бы искало данные по текстовому запросу, как Яндекс.
Хотелось бы спросить у вас какие вы видите технические возможности реализации желаемого? То есть: как это сделать?
Стоит уточнить, что разработка должна быть осуществлена в реальные сроки.
И еще, не хотелось бы в этой ветке обсуждать вопросы человеко-машинного взаимодействия (то есть вопроса зачем мне все это нужно), я лишь хочу узнать о технических возможностях.
stas (2009-04-10 17:20:00) [1]см. [1]
Там без union можно, через field1 like '%slovo1%' or field1 like '%slovo2%'
и так далее...
Игорь Шевченко (2009-04-10 15:33:00) [2]Kolan © (10.04.09 15:15) [26]
Есть предложение. Не заниматься ИИ и не думать о такой возможности. Яндекс и прочие системы ищут по огромному индексу, который сами строят, тебе оно надо - в дополнение к имеющимся в базе данным строить еще невъ^H^H^H^Hбольшой индекс для целей, которыми будет пользоваться узкий круг ограниченных лиц, мучиться с встраиванием готового движка и прочими не менее увлекательными занятиями ?
Если уж так хочется предоставить "произвольный поиск", то неплохой совет дан в [1], хотя способ тормозной, но тут уже возможны варианты с индексом.
В любом случае (хоть я плохо представляю задачу) овчинка не стоит выделки
Sergey13 (2009-04-10 15:25:00) [3]> [23] Ega23 © (10.04.09 13:26)
> [25] Ega23 © (10.04.09 13:44)
Спасибо, поковыряюсь на досуге.
Kolan (2009-04-10 15:15:00) [4]Игорь, а что тут мистического?
Есть ли еще предложения кроме полнотекстового поиска в MS SQL и самодельного ИИ?
Ega23 (2009-04-10 13:44:00) [5]Вобщем так. В презентации что-то сказано о VB.NET и C#, но вот предоствляет ли MSSQL этот доступ через API или это некая прослойка, внутри которой один фиг TSQL сидит - я не понял (смотрел мельком).
Материалы конференции:
http://citforum.ru/seminars/index_db.shtml
Смотрел первый доклад за 2005 год.
Игорь Шевченко (2009-04-10 13:28:00) [6]
> Примерно тоже самое, только текстом, а не пунктом списка.
то есть, у тебя есть поле воода, ты туда вводишь "измерения за вчера" и оно должно выбрать все результаты, сделанные за предыдущий день от текущей даты ?
Блажен, кто верует, ему тепло на свете.
Ega23 (2009-04-10 13:26:00) [7]
> Я как то совсем этим не интересовался никогда. В двух словах,
> если не трудно (или ссылку какую для чайников) - а по какому
> принципу там выбираются данные?
положа лапу на сердце, я альтернативами никогда не пользовался. Но.
В 2005 и 2006 году на конференции "Корпоративны базы данных" ( http://citforum.ru/seminars/cbd2009/) было очень много разговоров именно об альтернативах SQL-ю.
Точно помню, что Caсhe (есть такая СУБД) заявляли о C++ интерфейсе и о DirectAccess. Точно помню, что о C++ интерфейсе заявлялось Postgres-ом (причём он там чуть ли не более первичен, чем SQL).
И есть смутные воспоминания, что на презентации MSSQL 2005 Артёмов что-то про альтернативы также говорил.
Сейчас презентацию качаю, посмотрю...
> сори за офтоп.
Да это как раз не оффтоп, по теме всё...
stas (2009-04-10 13:18:00) [8]Kolan © (10.04.09 12:15) [20]
см. FULLTEXTINDEX - полнотекстовый поиск, с русским он работает начиная с 2005 вроде.
Sergey13 (2009-04-10 13:16:00) [9]> [19] Ega23 © (10.04.09 10:08)
Я как то совсем этим не интересовался никогда. В двух словах, если не трудно (или ссылку какую для чайников) - а по какому принципу там выбираются данные?
сори за офтоп.
Kolan (2009-04-10 12:15:00) [10]
> А что будет в текстовом поле в случае конкретно приведенных
> фраз ?
Примерно тоже самое, только текстом, а не пунктом списка.
Вроде примерно понятно — нужен ИИ. Думаю написание ИИ не подойдет в плане сроков разработки. Где бы взять готовый? У того же яндекса есть Яндекс.Серввер ( http://company.yandex.ru/technology/server/), но как его использовать в программе — не знаю, как и не знаю может ли он решить такую задачу или нет.
Может есть какие-то готовые средства?
Ega23 (2009-04-10 10:08:00) [11]
> А как еще?
С++, DiectAccess, серверный API...
Да этих интерфейсов по жизни - пруд пруди, просто в основной массе SQL везде используется.
Sergey13 (2009-04-10 09:04:00) [12]> [4] Kolan © (09.04.09 16:38)
> Sergey13, идею вашу понял, тогда вопрос: как составить такой
> запрос? Как, к примеру, фразу «Вчерашние измерения» превратить в
> SELECT * FROM Measurements WHERE CreationDate = 2008-04-08?
Мне видится только ИИ.
Sergey13 (2009-04-10 08:58:00) [13]> [7] Ega23 © (09.04.09 16:46)
> С чего ты взял?
А как еще?
sniknik (2009-04-09 20:44:00) [14]в смысле интерфейс? типа ADOX, доступ к базе на уровне структуры?
http://img410.imageshack.us/img410/1641/adox.jpg
это?
Ega23 (2009-04-09 19:40:00) [15]
> sniknik ©
Коля, есть у MSSQL какой-то интерфейс доступа кроме TSQL, или нет?
А то я что-то Подгорецкому не верю... :)
sniknik (2009-04-09 19:06:00) [16]в ADO у рекордсета есть FingFirst/FindNext/...
Ega23 (2009-04-09 17:35:00) [17]
> В общето это так, все остальное обман, видимость, фата моргана.
BOL под рукой нет, но, вроде как, у них чуть ли не Direct Access возможен?
Или я с чем-то путаю?
Игорь Шевченко (2009-04-09 17:16:00) [18]
> То есть, вместо, скажем, выпадающего списка с фразами вроде
> «Измерения за сегодня» или там «Измерения, сделанные Васей»
> сделать просто поле ввода, которое бы искало данные по текстовому
> запросу, как Яндекс.
А что будет в текстовом поле в случае конкретно приведенных фраз ?
Anatoly Podgoretsky (2009-04-09 16:58:00) [19]> Ega23 (09.04.2009 16:46:07) [7]
В общето это так, все остальное обман, видимость, фата моргана.
12 (2009-04-09 16:54:00) [20]наоборот, в первом посте что сказал сложно реализовать
а вещь бы самому пригодилась