Вопрос по SQL Server Yukon

uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Я имел в виду, когда вы результат проверяете при помощи текстового редактора.


да конечно. первая колонка то короткая, там текста обычно очень мало. Зато вторая большая. СТроки которые туда вставляются могут быть легко по 8К текста.

Впрочем, вряд ли это ваш случай, т.к. вы говорите, что половина результатов неправильная. Тут что-то другое.


перестроил нафиг весь каталог, вроде стало работать как надо. надолго ли :( Сердцем чую завтра приду на работу и опять что то не так будет.

Спасибо, 8К, за помощь и объяснения. По возможности буду держать в курсе, может что нарою, найду в чем проблема, основываясь на Ваших подсказках
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

можно только порадоваться что я забил на это дело и написал свой full text search
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
8K
Уже с Приветом
Posts: 5552
Joined: 20 Mar 2001 10:01
Location: SFBA

Post by 8K »

Dmitry67 wrote:можно только порадоваться что я забил на это дело и написал свой full text search

Ну, ту дискуссию я примерно помню и даже сам гордо принес на суд общественности вариант решения. Ваш full-text search годится только на то, чтобы детей пугать :). А наш - это гордое слово "платформа". (Три пинка ей в задницу.... в задницу...)

Проблема в том, что full-text search в SQL Server'е никому по большому счету не нужен, разве что для галочки. Но у нас все записано, все фичи пронумерованы. Т.е. мы знаем, чего пипл хочет. Yukon FTS, конечно, не такой позорный, но за кой-какие закидоны я бы кой-кому уши пообрывал, вот только руки коротки.

А uniqueman'у для hit highlighting'а можно разве что ORACLE или DB2 посоветовать.
Увидев друга, Портос вскрикнул от радости...
uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Проблема в том, что full-text search в SQL Server'е никому по большому счету не нужен, разве что для галочки.


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

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

большинство тулов, которые я встречал в инете, не позволяют обращатся к ним через стандартные DB interfaces, такие как ODBC, OLE DB и тому подобное. Именно поэтому я стараюсь настроить full text search у себя.

Однако если результаты работы full text search будут из рук вон плохи, то придется искать замену :(

Yukon FTS, конечно, не такой позорный, но за кой-какие закидоны я бы кой-кому уши пообрывал, вот только руки коротки.


ну раз уж заговорили, скажите пару слов, какие улучшения будут в Юконе на этот счет? :wink:

А uniqueman'у для hit highlighting'а можно разве что ORACLE или DB2 посоветовать.


ну highlighting никак не связан с базой то :) Он на клиенте выполняется. Оракл тяжелый неимоверно и под него машину надо соотвествующую. С DB2 дело не имел ни разу. А что там full text search работает гораздо лучше чем в SQL SErver?
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Огласите еще объемы пожалуйста

Количество документов
KB текста на документ
Обновлений в день
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

за сутки (от периода удаления записей до след. удаления) в базу втекает примерно 6000 - 8000 записей. Каждая запись по 8К текста примерно. обновления происходят по разному, может быть 5 записей в секунду, может быть одна запись за минуту.
8K
Уже с Приветом
Posts: 5552
Joined: 20 Mar 2001 10:01
Location: SFBA

Post by 8K »

uniqueman wrote:
Проблема в том, что full-text search в SQL Server'е никому по большому счету не нужен, разве что для галочки.


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

Пользователям full-text search, конечно, нужен. Я больше про то, что эта нужда среди нашего upper management'а как-то не особенно ощущается.
Увидев друга, Портос вскрикнул от радости...
8K
Уже с Приветом
Posts: 5552
Joined: 20 Mar 2001 10:01
Location: SFBA

Post by 8K »

uniqueman wrote:ну раз уж заговорили, скажите пару слов, какие улучшения будут в Юконе на этот счет? :wink:

В основном - быстрее он, да и масштабироваться худо-бедно научили. Раньше время индексирования экспоненциально росло от размера таблицы, а многопроцессорность как бы не совсем (т.е. совсем не) помогала. Работает надежнее. Есть несколько полезных примочек, но пока еще рано говорить. Вроде бы в бете они не появлялись. Есть крупные и очень полезные фичи, которые должны были в бету попасть, но точно не знаю, так что тоже лучше помолчу. Будет время - поищу help-file от беты, посмотрю, что в ней уже показано. Тогда можно будет более предметно поговорить.
Увидев друга, Портос вскрикнул от радости...
8K
Уже с Приветом
Posts: 5552
Joined: 20 Mar 2001 10:01
Location: SFBA

Post by 8K »

uniqueman wrote:большинство тулов, которые я встречал в инете, не позволяют обращатся к ним через стандартные DB interfaces, такие как ODBC, OLE DB и тому подобное. Именно поэтому я стараюсь настроить full text search у себя.

Однако если результаты работы full text search будут из рук вон плохи, то придется искать замену :(

Ну, крутые пацаны за пару-тройку недель пишут нормальный быстрый поиск и индексирование без всяких излишеств. Индекс построить не проблема (доставать данные через SQL OLE DB). Запрос сделать - тоже (поиск должен прикидываться OLE DB provider'ом, и тогда его можно через OpenRowset() изнутри T-SQL'а звать).

Но хочется, конечно, побольше синтаксического сахара. С обеих сторон. Попробуйте, скажем, немецкий текст на слова разбить. Это не на пару-тройку недель работа. Можно, впрочем, уже существующие компоненты звать. Или, с другой стороны, попробуйте переписать свои запросы так, чтобы вместо CONTAINS везде были OpenRowset/OpenQuery к msidx provider'у.
Увидев друга, Портос вскрикнул от радости...
8K
Уже с Приветом
Posts: 5552
Joined: 20 Mar 2001 10:01
Location: SFBA

Post by 8K »

uniqueman wrote:Оракл тяжелый неимоверно и под него машину надо соотвествующую. С DB2 дело не имел ни разу. А что там full text search работает гораздо лучше чем в SQL SErver?

Я бы сказал, что у них полезных фич больше, т.е. они к пользователю лицом, а не задницей. Впрочем, Yukon FTS на порядок лучше SQL Server 2000, а следующая версия будет еще лучше Yukon'а.
Увидев друга, Портос вскрикнул от радости...
uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Возможно ли сделать full text search с параметром типа " *word " или " *word* ". В SQL Server 2000 вроде нет, а в Юконе как?
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Мне кажется что Вам нужно чтото другое
Насколько я понимаю, fts индексирует СЛОВА а не СТРОКИ
То ест Вам нужен быстрый аналог LIKE, а не FTS
Соответственно вопо о case-sensitivity тоже отпадает

Я у себя проблему решил точно такую же
(тут у нас еще сложнее, клиент хочет и ошибки в правопсаии и синонимы)
Но извините скрипты дать не могу, собственость клиента
Так что все через него :)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Мне нужен очень быстрый поиск текстовой информации, которая хранится в базе данных. FTS работает в принципе неплохо, но вот если надо найти допустим слова которые заканчиваются на able, или где able стоит в любом месте слова... тут пока беда.
User avatar
Win32nipuh
Уже с Приветом
Posts: 2489
Joined: 04 Feb 2002 10:01
Location: Слава Україні!

Post by Win32nipuh »

uniqueman wrote:Мне нужен очень быстрый поиск текстовой информации, которая хранится в базе данных. FTS работает в принципе неплохо, но вот если надо найти допустим слова которые заканчиваются на able, или где able стоит в любом месте слова... тут пока беда.


Получается, что если Вам не нужны "фичи" FTS (словоформы и т.д.), в таком случае можно не грузить сервер FT индексированием. Как написал Dmitry67 - пробуйте обойтись лайками.
Но нужно заметить, что если Вы в лайке ищете внутреннее вхождение подстроки - это полное сканирование таблицы, обычный индекс для этого поля не поможет.
uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Нет, поиск фраз и слов нужен обязательно. И LIKE Для этого не подойдет по причине скорости. Сравнил скорости выборки через CONTAINS и через LIKE. Разница примерно в 8 раз. Это очень критично.

Я просто объяснил шефу что выборки типа * WORD, * WORD * не будут работать в FTS> Он вроде успокоился

Return to “Вопросы и новости IT”