powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 4.0 Вопрос
14 сообщений из 39, страница 2 из 2
FB 4.0 Вопрос
    #39394574
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyОЧЕНЬ интересно.Никто не мешает прикинуть эффект - создай табличку с триграммами, поддерживай её триггерами на индексируемых полях, оцени что получится и нам расскажи ;)
Это будет, конечно, грубая оценка сверху, но зато её можно быстро получить.
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394614
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladДостаточно аргументов ? :)"смайлик чешет репу". :)

hvladпотребует больше random-ioну на ссд мы уже перешли, СХД пока не осилили.

hvladсоздай табличку с триграммами, поддерживай её триггерами на индексируемых полях, оцени что получится и нам расскажиЯ подумаю, точнее смигрирую на трешку (сейчас в процессе), и уже "там" прикину, полагаю, что сделаю. В первом приближении я понял о чем речь.
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394628
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladIvan_Pisarevsky,

если делать на базе имеющихся b-tree индексов, то нужно понимать что
- в индекс будет вставляеться не один ключ, а столько, сколько триграмм в индексируемой строке
- эти триграммы могут быть в совершенно разных ветках индекса, т.е. операция затронет гораздо
больше страниц и потребует больше random-io
- то же самое при удалении из индекса
- то же самое при поиске - придётся искать не один ключ, а столько, сколько триграмм в искомой строке

Достаточно аргументов ? :)

Я думаю последовательность примерно такая:
Пусть есть текстовое поле.
1. Разбираем его на уникальные слова.
2. Добавляем новые слова в таблицу Words(word_id, word)
3. Добавляем новую связь в таблицу LINKS(object_fk, word_id), где object_fk - идентификатор текстового объекта.
4. Разбираем слово на триграммы. Добавляем новые триграммы в таблицу TRIGRAMS (TRIGRAM_ID, TRIGRAM)
5. Добавляем новую связь в таблицу TRG_LINKS(TRIGRAM_ID, word_id)

Таблица Words и триграмм расти будут слабо, в процессе работы практически не будут меняться, потому-что набор слов ограничен. Количество триграмм будет меньше количества слов. (50000 максимум для любого кол-ва текстов, хоть миллиард слов)
Ну и поиск достаточно простой. Основные затраты, только на хранение двух связей или 4 bigint.

Т.е. на 1 000 000 записей - 8 000 000 байтов.
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394632
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал тест на 1000000 строк текстовых данных - 250 000 слов, 27000 триграмм.
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394689
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__Сделал тест на 1000000 строк текстовых данных - 250 000 слов, 27000 триграмм.Самое главное опустил - кол-во связей
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394741
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneДружок...Киса, ты меня с кем-то спутала
Di_LIneОтвет на мой вопрос про "беглые буквы" - тру или фолс. И вся не долга. Решили эту проблему или нет.
И я тебя не заставлял написать: " Сам лично гонял тесты на PG."
Раз гонял тесты, то почему бы и не задать тебе такой элементарный вопрос?
Ну так я и не писал, что гонял тесты FTS на PG. Если это намёк на криворукость разрабов PG и всё, что выходит из их кузницы аналогично по качеству, то нет, т.к. триграммы тупы и в этом их сила.
Di_LIneВедь раз шпрехаешь по-русски, то далжОн и это про тестит, как наиболее часто встречающуюся особенность Русского Языка.
А если не протестил, то кто тебе ССЗБ?
Конкретно моя задача требует точного совпадения, т.е. быстрый like. В теории можно так настроить FTS, чтобы он и это мог, но в этом нет необходимости.

Di_LIneТебе не врезали по айцам:
- А как там дела с словами-исключениями из Правил Русского Языка.
Таких слов тоже предостаточно: Цыган на цыпочках... и далее во всех вариациях.

И заметь - не размазали ровным слом ниже плинтуса вопросом:
- А как обстоит дело со вновь заимствованными словами и их "русификацией"?
Типа: "Окейно" и прочее разговорно-жаргонное словотворчество населения.

- Так чёго кипешишь? Али чуешь, что пальцы дверкой прищемили тем вопросом? ;-)

А вот твой метода - отвечать вопросом на вопрос.
Но и в это ты не силен.

PS: Ну знаю, по каким местам бить адептов FTS-тарабарских какбэ-систЭмс.

Я тебе про тираммы, а ты про репликацию.
[spoiler] Насосы и Колеса
YouTube Video
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394763
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad__Avenger__Сделал тест на 1000000 строк текстовых данных - 250 000 слов, 27000 триграмм.Самое главное опустил - кол-во связей

trg_links 17 558 896 links = 9 972 536
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394771
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рассуждения про длину идентификаторов В 3.0 максимальная длина имени поля/таблицы 31 символ?
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394773
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__Сделал тест на 1000000 строк текстовых данных - 250 000 слов, 27000 триграмм.
- Хоспади и де они берут такое УГ?...
Да 8 лет взад базовый словарь от Яндекса включал под 6 лямов широко употребительных слов (без морфологии).
Без всяческих терминов мед, хим, пед и прочий "бред".


afgmКиса, ты меня с кем-то спутала.
Киса - мужского рода.
Иди учи матчасть, дружок...
[spoiler] Месье, же не манж па сис жур
YouTube Video
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394777
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНикто не мешает прикинуть эффект...
У меня уже несколько лет подобный подход живёт. В ручной имитации всего этого огорода изобрести новое сложно, и подход описан Сергеем Мереуцой на 2-й конференции.
Но есть и плюсы - можно учесть специфику задачи. Например, нарезка блоба на слова/триграммы кешируется, что сильно экономит ресурсы.
В сторону: заметил одну особенность, что position быстрее чем like '%xxx%' в FB, но почти не отличается по скорости в PG. Возможно есть что покурить в реализации самого like.
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394813
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__1. Разбираем его на уникальные слова.
2. Добавляем новые слова в таблицу Words(word_id, word)
3. Добавляем новую связь в таблицу LINKS(object_fk, word_id), где object_fk - идентификатор текстового объекта.

Слово "пайка":
1. пайка хлеба;
2. пайка радиодеталей.
Как различать будешь? И таких слов очень много.

Слово Degree.
Яндекс.Толмачdegree [dɪˈgriː] сущ

степень ж, градус м, уровень м, град м
(extent, grade, level, hail)
ступень ж
(stage)
звание ср, ранг м
(title, rank)
диплом м
(diploma)
образование ср
(education)
качество ср
(quality)

degree прил

дипломный
(diploma)


Как это слово должно "искаться" в Honda XL250 Degree (официальное название модели)?

PS:
Для доказательства не верности теоремы достаточно одного примера.
Но и 100500 мильёнов примеров - не доказывают верность теоремы.
(где-то вычитанное, близко к тексту)
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394857
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,

тут никто не занимается FTS в твоём понимании. Уймись уже, плс
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394858
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триграммы - всего-то навсего УГ от шинглов.
Метод шинглов - известен с 1997 года. ( тынц )
...
Рейтинг: 0 / 0
FB 4.0 Вопрос
    #39394863
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladУймись уже, плс
- Всё, молчу-молчу... :-)
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 4.0 Вопрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]