|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
Обсуждение из форума на другом сайте. Надеюсь здесь решение найдется быстрее. Q. Хотелось бы сделать поиск по базе данных с результатами, похожим на то как это делают поисковики. Например в таком порядке: - полное совпадение с ключевой фразой - наличие всех слов из фразы - наличие любых слов из фразы Пока я сделал три отдельных запроса и вывожу результаты по очереди. Хотелось бы решить эту задачу с помощью одного запроса. Варианты выборки через OR и через UNION дают нужные записи из базы, но не в требуемом порядке - все перемешано. Может кто сталкивался с подобной задачей? Подскажите. P.S. Я использую Access (~2000 записей). Может лучше перейти на MS SQL, если там эта задача решается проще? ****************************** A. quote: -------------------------------------------------------------------------------- все перемешано. -------------------------------------------------------------------------------- order by не пробовал? hint: чтобы не потерять порядок резалтсетов можно к добавить дополнительное поле "rs", в котором и хранить номер резалтсета. Т.е. что то вроде code: -------------------------------------------------------------------------------- select a,b, '1' as rs from TBName union select a,b, '2' as rs from TBName order by rs ************************************* Q. После добавления поля "rsorder" с номером выборки, записи с одним и тем же ID стали разными и появились повторения. Я использую "union", а результат получился, как при "union all" до введения этого поля. Distinct ID в кажом Select-e не помогает. *************************************** A. union удаляет только полные дубликаты. Соответственно условиями where надо добиваться того, чтобы одинаковых строк не возвращалось *************************************** Q. Т.е. в каждом последующем select-е исключить результаты всех предыдущих? Но как узнать какие записи уже выбраны? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 14:42 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
Тема интересная, я тоже сейчас занялся реализацией поиска. Мне кажется, что сначала нужно провести поиск по всем словам в поле поиска, введенным в порядке убывания значимости, затем по словоформам этих слов (падеж, число и т.д. - но как это сделать?), а уже затем отрезать по слову с конца строки. Буду благодарен за идеи и ссылки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2006, 18:51 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
авторВарианты выборки через OR и через UNION дают нужные записи из базы, но не в требуемом порядке - все перемешано. ВС в факах показал как можно сортировать по ..... и с помощью.... интересное решение , результат не очевиден, но очень хороший. если ВС напомнит..., то может и натолкнет на решение, мне помогло, но откуда это я уже не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2006, 19:47 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
2 Вадя Из поиск в базе с результатами, похожим на то, как это делают поисковики...натолкнет на решение, мне помогло, но откуда это я уже не помню. Вадя, вы не вспомнили? Было бы очень интересно посмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 10:50 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
нет это Саныча нада попытать.... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 11:13 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
Не ради помощи а ради совета. Почитайте принципы работы поисковиков, а то так сами запутаетесь в этой галиматье. Эта работа не простая. Поисковики типа Yandex или Rambler работают далеко не на простом совпадении только простого словосочетания далее отжельных слов и т.д. Там организовано уда сложнее. Разберитесь с принципами а уж потом составляйте планы по реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 11:36 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
Вспомнился старый анедот. Еще советских времен. Одному горцу по поводу рождения сына нужно было устроит пир. Однако он был бедный, и барана у него для плова не было. Он пошел к богатому соседу справа и попросил у него барана, чтобы зарезать на угощение. Тот ответил: - Я тебе, сосед, барана не дам, но дам совет. Пойди к соседу слева и попроси у него барана. Он даст. Пошел горец к соседу слева и попросил у него барана. Тот сказал: - Барана я тебе не дам, но дам совет... - Вах! - вскричал горец. - Почему мне все дают советы и никто не дает барана!? - Потому что у нас Страна Советов, а не страна баранов ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 11:48 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
mds_worldВспомнился старый анедот. Еще советских времен. Одному горцу по поводу рождения сына нужно было устроит пир. Однако он был бедный, и барана у него для плова не было. Он пошел к богатому соседу справа и попросил у него барана, чтобы зарезать на угощение. Тот ответил: - Я тебе, сосед, барана не дам, но дам совет. Пойди к соседу слева и попроси у него барана. Он даст. Пошел горец к соседу слева и попросил у него барана. Тот сказал: - Барана я тебе не дам, но дам совет... - Вах! - вскричал горец. - Почему мне все дают советы и никто не дает барана!? - Потому что у нас Страна Советов, а не страна баранов Я не знаю как действительно работают поисковики, но знаю что там есть много интеллектуальных решений для того чтобы пользователь находил то что ему нужно. Если вы ачинаете обсуждать это с того что как сделать выборку из такой-то таблицы не имея "генеральной идеи", то это у вас так и ничем не закончится. Как известно программисты в компании Microsoft начинают программировать карандашом на бумаге и пишут не код а рисуют схемы, пишут комментария, просто текст и т.д., то есть формируют чёткое представление что нужно сделать и только потом приступают к следующим этапам. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 12:08 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
Спасибо Just User! Просветлилось! Планировали, реализовывали... Беспринципно все это. Кончаем марать экран! Делаем жизнь с компании Microsoft! Формируем четкое представление и думаем, думаем, думаем! Да, что ж вы раньше не появились, а то уже и забыл как думать. А как, действительно? Забыл. Вспомнить надо, а то погублю свою единственную, жизнь мою, в рутине. Приходите еще. Нам еще есть в чем совершенствоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 12:30 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
И еще один совет: Ваять свою поисковую систему дело неблагодарное. Первое, на что напорешся - морфология русского языка (я так понял, что интересует поиск в документах). В принципе, можно брать словоформы с сайтов типа www.aot.ru, но тогда поисковые запросы к базе разрастутся до безобразия. Использование Index Server'a дает результаты только на простых запросах, на сложных - облом. Может быть просто у меня руки кривые, но толку от него на сложных запросах я не добился. В итоге поисков решения пришел к выводу, что проще и быстрее найти поисковик стороннего производителя. В описании одного из них была заявлена возможность поиска в базах Access'a. Как звать прогу не помню, потому что на тот момент поиск в базе мне был не нужен, т.к. документы у меня хранятся не в базе, а в виде файлов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 12:33 |
|
поиск в базе с результатами, похожим на то, как это делают поисковики
|
|||
---|---|---|---|
#18+
поисковики используют достаточно дорогие и сложные решения учитывая при отборе особенности языковых форм, затем перед отображением результаты сортируются но не только по полному совпадению слов или фразы но и по рейтингу (как правило это индекс цитируемости) ресурса на который ведет ссылка. ваша задача похожа на одну задачу которую мне как то приходилось решать: "сортировка по созвучности" когда по поисковой фразе с учетом возможных опечаток необходимо вывести список вариантов с учетом убывания созвучности ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2006, 12:41 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1655448]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
14ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 166ms |
0 / 0 |