Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Как лучше искать по текстовому полю?   Найти похожие ветки 

 
ocean   (2009-04-15 12:49) [0]

Я хочу часто проводить поиск по полю varchar(2500) на вхождению подстроки в любом месте, соответственно нужно максимально ускорить этот поиск. Проиндексировать поле MS SQL не дал, мол максимум 900 символов. Что можно предпринять? Как лучше искать, Locate или SQL select?


 
Sergey13 ©   (2009-04-15 13:03) [1]

> [0] ocean   (15.04.09 12:49)
> Как лучше искать, Locate или SQL select?

Сделай и сравни. Делов то на 10 минут.


 
Кщд   (2009-04-15 13:07) [2]

>ocean   (15.04.09 12:49)  
в случае с произвольной подстрокой индекс бы ничего не дал в плане производительности)


 
Sergey13 ©   (2009-04-15 13:14) [3]

> [0] ocean   (15.04.09 12:49)

А что в этом поле? Как много азписей в таблице? Как часто надо искать?
Возможно неплохим решением будет создать подчиненную таблицу ключевых слов текста для поиска.


 
ocean   (2009-04-15 13:51) [4]

В поле плоский текст. Не знаю как оценить частоту, допустим раз в неск. секунд. С ключевыми словами интересная мысль, но тогда надо придумать, как их вычленять?


 
Ega23 ©   (2009-04-15 13:53) [5]

Можно попробовать FullTextSearch подключить. Но не факт, что это офигенную скорость даст.


 
sniknik ©   (2009-04-15 13:55) [6]

> Возможно неплохим решением будет создать подчиненную таблицу ключевых слов текста для поиска.
в mssql это уже есть, называется полнотекстовый поиск. нужно просто включить, и пользоваться.


 
Ega23 ©   (2009-04-15 14:08) [7]


> в mssql это уже есть, называется полнотекстовый поиск. нужно
> просто включить, и пользоваться.


Тяжелый он очень в MSSQL. К сожалению. И я не нашёл, как его настраивать тонко можно (игрался с MSSQL 2000).


 
ocean   (2009-04-15 14:40) [8]

Прочитал про полнотекстовый поиск, выглядит как то что нужно, но:
"к сожалению в SQL Server изначально не реализована возможность полнотекстового поиска на русском, украинском языках." Это все Кондолиза устроила. Не понял, как включить таблицу в полнотекстовый поиск не из среды MSSQL, а программно. Сейчас погоняю.


 
Anatoly Podgoretsky ©   (2009-04-15 15:23) [9]

> ocean  (15.04.2009 12:49:00)  [0]

К поиску тут относится только Locate


 
Anatoly Podgoretsky ©   (2009-04-15 15:30) [10]

Индексы или полнотекстовый поиск для подстроки, придется строить по всем вариантам поиска!
вариант
ариант
риант
иант
ант

и это только по одному слову, а не по совокупности слов строки.


 
Anatoly Podgoretsky ©   (2009-04-15 15:43) [11]


> К поиску тут относится только Locate

Но и его нельзя применить для поиска подстроки.
Надо отказаться от поиска и заменить выборкой с отбором по подстроке. Медленно, но что делать.


 
stas ©   (2009-04-15 17:09) [12]

ocean   (15.04.09 14:40) [8]
MSSQL 2005 юзай.


 
clickmaker ©   (2009-04-15 17:55) [13]

> к сожалению в SQL Server изначально не реализована возможность
> полнотекстового поиска на русском

реализована (начиная с 2005 точно), но не включена по умолчанию


 
ANB   (2009-04-16 12:11) [14]

А как в оракле такую фичу подключить ?
Я задрался уже запросы распараллеливать ради такой ерунды.
И писать разбивку по словам для нашей базы - очень неоптимально - места уже впритык на сервере.


 
sniknik ©   (2009-04-16 13:03) [15]

> такую фичу подключить ?
> места уже впритык на сервере.
а как ты думаешь эта фича реализована? где она будет хранить разбивку/индексы?


 
Кщд   (2009-04-16 13:08) [16]

>ANB   (16.04.09 12:11) [14]
>А как в оракле такую фичу подключить ?
interMedia


 
Кщд   (2009-04-16 13:11) [17]

>Кщд   (16.04.09 13:08) [16]
если информация структурирована, то нам, например, отлично помог ctx-индекс для поиска по достаточно большому хранилищу XML-документов


 
ANB   (2009-04-16 17:44) [18]


> если информация структурирована

Если бы. Это имя клиента, вбитое как попало.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.062 c
15-1267352341
виола
2010-02-28 13:19
2010.08.27
Задача


3-1239785375
ocean
2009-04-15 12:49
2010.08.27
Как лучше искать по текстовому полю?


2-1271319504
Б
2010-04-15 12:18
2010.08.27
Не срабатывает SetWaitableTimer.


2-1265712324
Nilman
2010-02-09 13:45
2010.08.27
Поясните пожалуйста значение свойства TThread.FreeOnTerminate


15-1269420643
Sergey2
2010-03-24 11:50
2010.08.27
формат с разделителями





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский