|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
maytonя-бы свёл задачу к поиску документов с 3 токенами. Аффтару это не нужно, ему всего лишь хочется чтобы поиск по вхождению подстроки в поле выполнялся быстрее, чем full table scan. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 19:16 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
Сомневаюсь что это вообще возможно. Текстовые индексы обычно не отсекают ветви поиска как это делают B+Tree, Они просто делают full-index-scan максимально дешевым. Но это моё предположение. На самом деле я не знаю как устроен CTX_SYS внутри. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 19:21 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
кит северных морей Андрей_7777 , текстовый индекс по функции, например, replace(name, ' ') создать нельзя. Не получилось: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 19:36 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
Можно поиграться с user_lexer и user_filter (procedure_filter) Зачем нужны % c обоих сторон в contains? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2021, 03:47 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
Узрел еще, что индексов 3 шт. Я бы тогда сделал один индекс: user_datastore + section_group В процедуре для user_datastore формировал типа такого: NAME1 NAME2 NAME311 22 123456; 33 44 567890 25 МЮ 01725 null Код: xml 1. 2. 3. 4. 5.
И искал бы без % ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2021, 13:54 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
Андрей_7777, раз уж хотите возиться с таким "garbage in, garbage out", то можно сделать простой препроцессинг: убираем пробелы и конкатенируем все три поля Код: plsql 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.
результаты Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 16:37 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
Sayan Malakshinov, то что надо, спасибо большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2021, 00:03 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
Андрей_7777, расширенный пример: Код: plsql 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. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82.
Код: plsql 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.
т.е. это, конечно, будет быстро, но места сожрет оочень много... Я бы лучше разгреб этот мусор и, как минимум, сконкатенировал всякие номера в слова, чтобы избежать % в начале поисковой строки - сразу кучу проблем избежите: и с пробелами, и с substring_index ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2021, 01:58 |
|
Текстовые индексы. Быстрый поиск вида like '%&%'
|
|||
---|---|---|---|
#18+
Sayan Malakshinov, спасибо, но разгрести мусор не получится. Около 100 Гб займут текстовые индексы по данной таблице, это совсем не много по меркам заказчика, т.к. на текущий момент БД занимает 15 ТБ и в будущем сильно увеличится. Заказчика гораздо больше волнует время выполнения запросов и время перестроения индексов после добавления/изменения данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 13:35 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1880412]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 406ms |
0 / 0 |