Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Умный поиск по БД вместо фильтрации. Как реализовать? [XP]


Страницы:   1 2

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]

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо