|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Комрады, дайте совет. Есть табля с текстовыми блобами. Есть вероятность того, что понадобится быстрый поиск по блобам в селекте (CONTAINING и проч.). Код: sql 1. 2. 3. 4. 5. 6. 7.
Насколько оправдано будет создание varchar-клона этого поля размером, скажем, 8К+ символов? С учетом того, что сами блобы вряд ли будут больше этого размера и заполнять varchar-клон планируется в триггере AIU при помощи, например, LEFT(BLOB_TEXT,8000)? ================= Док. Win10 Ultim x64/Deb 10 amd64/Darwin Cocoa(Monterey): FB 3.0.7.33374, Lazarus 2.3.0(trunk); FPC 3.3.1(trunk) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 14:47 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
ты опять оптимизируешь сильно ЗАРАНЕЕ. не парься. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 14:49 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Мимопроходящий, не, я по предыдущей базе знаю, что такое наверняка понадобится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 14:55 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док не, я по предыдущей базе знаю, что такое наверняка понадобится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 14:57 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Мимопроходящий, я правильно понимаю, что в конструкции Код: sql 1. 2. 3. 4. 5.
оба предиката условия по производительности равны? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:18 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док Мимопроходящий, я правильно понимаю, что в конструкции Код: sql 1. 2. 3. 4. 5.
оба предиката условия по производительности равны? нет. за блобом всегда на отдельную страницу, текст - не всегда у блобов еще свои отдельные накладки на версионность ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:35 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
я конечно извиняюсь за грубость, но полунамеки, как гуманитарий, я не понимаю. Можно пальцем показать, как правильно? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:41 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док я конечно извиняюсь за грубость, но полунамеки, как гуманитарий, я не понимаю. Можно пальцем показать, как правильно? :) но вряд ли оно тебе так таки надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:43 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
pastor за блобом всегда на отдельную страницу зы: нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:44 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
ДокНасколько оправдано будет создание varchar-клона этого поля размером, скажем, 8К+ символов? Нинасколько. Тебе к https://www.sql.ru/forum/actualthread.aspx?tid=1341875 Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:45 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Мимопроходящий Док я конечно извиняюсь за грубость, но полунамеки, как гуманитарий, я не понимаю. Можно пальцем показать, как правильно? :) но вряд ли оно тебе так таки надо. т.е. для "бытовых" нужд нужно еще UDR прикручивать? И будет работать на win/unix? зы. наверное еще и за денежку? о_О ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:55 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Ну так тебе шашечки или ехать. Если для отмазки - то можешь своё поле на VARCHAR(32000), если чтобы работало быстро - таки да, стемизация, индексация и прочие хитрые трюки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 16:05 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док т.е. для "бытовых" нужд нужно еще UDR прикручивать? И будет работать на win/unix? зы. наверное еще и за денежку? о_О ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 16:09 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док> Можно пальцем показать, как правильно? :) Если ты уверен, что там именно <8K текста - можешь прямо варчар-ом и хранить, нафига тебе именно БЛОБ тогда? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 17:09 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Если ты уверен, что там именно <8K текста - можешь прямо варчар-ом и хранить, нафига тебе именно БЛОБ тогда? Я не уверен, поэтому пусть лучше будет :) Всем большое спасибо за советы и участие. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 17:47 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док Я не уверен, поэтому пусть лучше будет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 17:59 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Мимопроходящий олдскулы шутили всегда найдется дурак, который проверит, можно ли сохранить "Войну и Мир" в поле с жалобами :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 18:21 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док, Автообрезание текста сделай на клиенте. Один фиг такие длинные жалобы никто читать не будет. А в разе чего - можно и уточнить у дурака, чего хотел-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 18:49 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
DarkMaster Автообрезание текста сделай на клиенте. нельзя :) Тут ведь какое дело: сначала кажется, что хватит, а потом, раз! - и "эх, коротка кольчужка..." Upd: а вот хэши блобов я на клиенте считаю и пишу в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 19:34 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док> нельзя :) Почему? Что хранится в этой портянке, "перечень симптомов/жалоб"? Док> Upd: а вот хэши блобов я на клиенте считаю и пишу в базу. А смысл? Сравнивать на равенство ты не будешь, а для любого иного поиска они бесполезны. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 19:39 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Файл README.builtin_functions.txt у меня имеет размер 30964 байта. Язык текста - английский. Просто для примера. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
Файл содержит 87 символов, 1221 диграмм, 3992 триграммы, 6921 тетраграмм. Их можно сунуть в отдельные индексированные таблицы и искать по ним пулей. Если есть запись соответствующей триграммы - значит, contains. Если нет - то нет. Для поиска вполне достаточно. Волшебные Full-Text Search делают, в общем-то, то же самое, но хитрее, умнее, точнее, быстрее и так далее. Если этого всего (ума, хитрости, и т.д.) будет не хватать - можно посмотреть, как сделано "у них", и сделать так же. Ну и перейти на них тоже никогда не поздно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 19:56 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Почему? Что хранится в этой портянке, "перечень симптомов/жалоб"? дофига чего. Конечно, мало вероятно, что более 8000 символов (я правильно помню, при 4-х байтной кодировке это 32000/4 символов?). Но пусть будет... pizmon Для поиска вполне достаточно. боюсь, это очень усложнит структуру базы. И Оккама обидится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 00:49 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док боюсь, это очень усложнит структуру базы. И Оккама обидится :) Да блин! У нас же есть целый Firebird SQL сервер! Он умеет в сохранить строки, построить индекс и искать по индексу. Он как раз для этого предназначен (а не чтобы рассылать почту по smtp, как многие думают)! Код: sql 1. 2. 3. 4. 5. 6.
Добавляем 1 таблицу: Код: sql 1. 2. 3. 4. 5. 6. 7.
В триггерах на TBL_BLOBTEXT что-то такое: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Ползатель хочет искать 'Дыни и арбузы'. Сейчас строится запрос вида Код: sql 1. 2. 3. 4.
Это полный перебор всех блобов. Вместо этого Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Просматриваются только те блобы, которые отобрались на ранних этапах. Собственно, всё. Прикручивать ЛЮБОЙ FTS-engine на три порядка дольше. А вот эффективнее ли? PS. Всё писано прямо в браузере, мог ошибиться в синтаксис. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 01:45 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Мимопроходящий Док т.е. для "бытовых" нужд нужно еще UDR прикручивать? И будет работать на win/unix? зы. наверное еще и за денежку? о_О про это же подумал эластик, наверное, перебор, а сфинкс в самый раз в русский и английский он точно умеет, хз на счет нативной интеграции в фб, но есть апи. да нужны доп шаги при обновлении данных по поддержанию индекса, но если охота именно полнотекстовый то по другому никак сейчас то что было сфинксом допиливаться в виде форка - https://habr.com/ru/post/541126/ а вот натягивать полнотекстовый поиск на рсубд не вариант это было актуально, лет 20 назад, когда не было других вариантов ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 09:10 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
а есть какой-нить getting started со сфинксом? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 13:18 |
|
Текстовый блоб и поиск по нему
|
|||
---|---|---|---|
#18+
Док, для сфикса http://www.sphinxsearch.com/docs/sphinx3.html для мантикор https://manual.manticoresearch.com/ https://play.manticoresearch.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 20:06 |
|
|
Start [/forum/topic.php?all=1&fid=40&tid=1559819]: |
0ms |
get settings: |
71ms |
get forum list: |
12ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
56ms |
get topic data: |
46ms |
get forum data: |
4ms |
get page messages: |
1151ms |
get tp. blocked users: |
2ms |
others: | 197ms |
total: | 1555ms |
0 / 0 |