![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Умный поиск по БД вместо фильтрации. Как реализовать? [XP]
Kolan © (2009-04-09 16:08:00)Здравствуйте!
В приложении сотрудничающем с MS SQL Server 2000 нужно сделать возможность искать данные в базе. В базе результаты измерений всяких штук-дрюк :) Задача довольно простая. Данные разные в основном числа и строки.
Есть идея попробовать не делать обычной фильтрации, а заменить её поиском. То есть, вместо, скажем, выпадающего списка с фразами вроде «Измерения за сегодня» или там «Измерения, сделанные Васей» сделать просто поле ввода, которое бы искало данные по текстовому запросу, как Яндекс.
Хотелось бы спросить у вас какие вы видите технические возможности реализации желаемого? То есть: как это сделать?
Стоит уточнить, что разработка должна быть осуществлена в реальные сроки.
И еще, не хотелось бы в этой ветке обсуждать вопросы человеко-машинного взаимодействия (то есть вопроса зачем мне все это нужно), я лишь хочу узнать о технических возможностях.
Anatoly Podgoretsky (2009-04-09 16:54:00) [21]> 12 (09.04.2009 16:43:05) [5]
Вообще то он хочет получить запрос из свободно формы, без выбора из предопределенного списка слов. Короче он претендует на докторскую, если не снизит аппетиты.
Anatoly Podgoretsky (2009-04-09 16:52:00) [22]> Kolan (09.04.2009 16:38:04) [4]
Book OnLine - можно взять на Микрософте или читать в Online, она поможет по части запросов и построение полнотекстовых поисков.
Но у тебя основная проблема будет с ИИ да еще как на Яндексе, а это Ноу Хау
Ega23 (2009-04-09 16:46:00) [23]
> СУБД типа MSSQL умеют общаться с внешним миром ТОЛЬКО через
> SQL
С чего ты взял?
12 (2009-04-09 16:43:00) [24]БОЛ - book on line
12 (2009-04-09 16:43:00) [25]надо пользователям выдать составитель запросов
типа кнопки
Выбрать
Всех
больше
меньше
и т.п.
Пользователь тыкает кнопку Выбрать, у тебя sqltext:=\' select \' становится. так видел в одной программе.
Kolan (2009-04-09 16:38:00) [26]12, не это слишком просто — работать не будет.
Sergey13, идею вашу понял, тогда вопрос: как составить такой запрос? Как, к примеру, фразу «Вчерашние измерения» превратить в
SELECT * FROM Measurements WHERE CreationDate = 2008-04-08?
Анатолий, а что такое БОЛ и где его (её?) взять?
Sergey13 (2009-04-09 16:28:00) [27]> [0] Kolan © (09.04.09 16:08)
Поиск мелочи по карманам разительно отличается от поиска в том же яндексе, поэтому без уточнения конечной цели ответ на вопрос затрудняется.
"Искать по БД" это вообще несколько неправильная формулировка, ИМХО. Информация содержится (и ищется соответственно) в конкретных таблицах.
СУБД типа MSSQL умеют общаться с внешним миром ТОЛЬКО через SQL. Т.е. сформировав правильный запрос, ты получишь правильный ответ. Т.е. твоя задача сводится к построению правильных запросов.
Anatoly Podgoretsky (2009-04-09 16:27:00) [28]> Kolan (09.04.2009 16:08:00) [0]
Искать - Find/Locate можно на сервере, на клиенте можно делать только выборку. Для этого надо написать запрос на выборку по критерию. Информацию смотри в БОЛ, обрати внимание не полнотекстовый поиск, к сожалению многоформы для русского не работают. Ну и потребуется небольшой ИИ, которое можно узнать на Яндексе, если надо как Яндекс.
12 (2009-04-09 16:20:00) [29]введеную строку разбить на слова, сделать like по всем полям всех таблиц, пересечь/заюнионить результаты по релевантности