|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Привет други! В продолжение топика JDBC необязательные параметры Надо реализовать имплементацию такого интерфейса. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Приветствуется 1. Восьмерка, девятка-десятка. жигулей. Лямбды-фигамбды. Стримы. 2. Kotlin , Groovy, Java, вобщем все Java-подобное. 3. Перформанс - необязателен. Главное чтоб просто работало корректно. Не приветствуется 1. Готовые платные решения. 2. Вопрос "зачем" и нудотство. 3. Анонимные чужие сорцы. Не нужно 1. Текстовые индексы 2. Искать в стрёмных datatypes (BLOB, raw,... e.t.c.). Достаточно varchar, number. Под катом детали. 1. Используя интерфейс JDBC и фасад ILikeAGoogle и неизвестную БД X мы должны найти список таблиц и список datarows которые содержат искомое ключевое слово. 2. Собрать jar чтоб можно был так run-нить Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Предлагайте ваши варианты. У меня своей реализации еще нет. Go-go кодить! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 16:45 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Наверное насчёт одного connection я был не прав. По идее пул надо передать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 17:39 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Смысл? Проблем не вижу. Metadata из JDBC, плюс цикл по таблицам + колонкам, плюс поиск (создание SQL запроса). @return collection of pairs : table name, data row (in JSON format). Сложно как-то проще возвращать table name, column name, value особенно, если производительность не важна Искать в стрёмных datatypes (BLOB, raw,... e.t.c.). Достаточно varchar, number. Date нужно? Даже с number есть "стремность". Как искать подстроку "1234" ? Т.к. формат чисел вполне может быть: 1 234 567.89 (пробел в качестве разделителя тысячных разрядов) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 17:45 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevДаже с number есть "стремность". Как искать подстроку "1234" ? Т.к. формат чисел вполне может быть: 1 234 567.89вот только не надо путать отображение с тем, что хранится ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 18:21 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяLeonid KudryavtsevДаже с number есть "стремность". Как искать подстроку "1234" ? Т.к. формат чисел вполне может быть: 1 234 567.89вот только не надо путать отображение с тем, что хранится Тогда перефразирую вопрос: Как правильно искать подстроку "1234" в хранимом значение 000100101101011010000111 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 18:35 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Есть число хранимое в СУБД: один миллион двести тридцать четыре тысячи пятсот шестесят сем и восемьдесят девять тысячных По техническому заданию, в этом числе, ищут подстроку "1234" Есть ли она там или ее там нет? Во фразе "один миллион двести тридцать четыре тысячи пятсот шестесят сем и восемьдесят девять тысячных" - "1234" - нет В представление в формате с пробелом в качестве разделителя тысячных "1 234 567.89" - нет В двоичном виде в памяти компьютера (без тысячных) "000100101101011010000111" - тоже нет Но, есть подозрение, что mayton считал, что все же, ответ "есть" ))) Хотелось бы конкретизировать Т.З. Как искать строки в number. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 18:40 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevТогда перефразирую вопрос: Как правильно искать подстроку "1234" в хранимом значение 000100101101011010000111 поле в котором записано 000100101101011010000111 - какой тип имеет? строковый ? инт? Leonid KudryavtsevВо фразе "один миллион двести тридцать четыре тысячи пятсот шестесят сем и восемьдесят девять тысячных" - "1234" - нет В представление в формате с пробелом в качестве разделителя тысячных "1 234 567.89" - нет В двоичном виде в памяти компьютера (без тысячных) "000100101101011010000111" - тоже нет если искать where поле like '%1234%' найдет потому как поле будет преобразовано в строку 1234567.89 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 18:54 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 18:55 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
mayton, если свяжешься со мной - могу продемонстрировать поиск с использованием like ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:03 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevDate нужно? Давайте подумаем. Допустим я ищу 16-mar-2018. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:15 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяполе в котором записано 000100101101011010000111 - какой тип имеет? строковый ? инт? это не поле, это электрончики в микросхеме памяти "вот только не надо путать отображение с тем, что хранится" ( C ) вадя Упростим вопрос, число один миллион двести тридцать четыре тысячи пятсот шестесят сем и восемьдесят девять тысячных содержит ли следующие подстроки: 67.89 67,89 ? Какую именно подстроку найдет Ваш like? (с group separator я что-то загнул, на Oracle с первого раза пример соорудить не получилось) вот лично у меня на компьютере, в данный момент, like вообще работает так: SQL> desc xx_test Name Null? Type ----------------------------------------- -------- ---------------------------- N NUMBER SQL> select count(*) from xx_test where n like '%67.89%'; COUNT(*) ---------- 0 SQL> select count(*) from xx_test where n like '%67,89%'; COUNT(*) ---------- 0 SQL> select count(*) from xx_test where n like '%67a89%'; COUNT(*) ---------- 1 Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:20 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonДавайте подумаем. Допустим я ищу 16-mar-2018.смотря где искать ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:22 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Даже с number есть "стремность". Как искать подстроку "1234" ? Т.к. формат чисел вполне может быть: 1 234 567.89 (пробел в качестве разделителя тысячных разрядов) Если число целое то я вообще не вижу проблемы. Символы группировки можно убрать и искать как строку. Decimal - приводить к единой форме с точкой и искать. Float и double - не надо вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:30 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяmayton, если свяжешься со мной - могу продемонстрировать поиск с использованием like Куда? У нас что, клуб личных встреч? Пиши сюда. У меня нет секретов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:32 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonКуда? У нас что, клуб личных встреч? Пиши сюда. У меня нет секретов.у меня нет публичного постоянно работающего сервера - поэтому могу только на время предоставить доступ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:37 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
я к тому, что искать подстроки в любых других типах данных, отличных от char/string, можно только договорившись о дефальтном настройке форматов преобразования типов если с числами, это еще не так очевидно, то с Date это уже в полный рост Т.ч., в общем, если выкинуть "Искать в стрёмных datatypes" то кроме String-подобных типов + Number + Date ничего и не остается. Но и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:38 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяmaytonКуда? У нас что, клуб личных встреч? Пиши сюда. У меня нет секретов.у меня нет публичного постоянно работающего сервера - поэтому могу только на время предоставить доступ Ты что женщина? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:41 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonFloat и double - не надо вообще.ну не надо так не надо но уже таблица Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
данные"id""nn"164867,892454,779 запрос Код: sql 1. 2. 3. 4. 5.
результат"id""nn"164867,89 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:46 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonТы что женщина?нет, ну не оставлять же комп шуметь пока не используется :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:47 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevя к тому, что искать подстроки в любых других типах данных, отличных от char/string, можно только договорившись о дефальтном настройке форматов преобразования типов если с числами, это еще не так очевидно, то с Date это уже в полный рост Т.ч., в общем, если выкинуть "Искать в стрёмных datatypes" то кроме String-подобных типов + Number + Date ничего и не остается. Но и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date Давайте пока в режиме XP. Будем копить поиск строк в строках. А потом я оформлю user story для расширенных поисков . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:48 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНо и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date не путайте отображение с хранением!!!!! авторdecimal separatorэто только для вывода. если у тебя число/дата хранится в строке - то тут уже трудно о чём-то договариваться если в отдельных полях - проблем вообще нет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:52 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяmaytonТы что женщина?нет, ну не оставлять же комп шуметь пока не используется :) Мне не интересно смотреть на готовые коробочные решения. Я дал тему. Хочешь - кодь. Не хочешь - подними другой топик где будет твоя тема и твой продукт. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:53 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonМне не интересно смотреть на готовые коробочные решения. Я дал тему. Хочешь - кодь. Не хочешь - подними другой топик где будет твоя тема и твой продукт.как хочешь ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:54 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяLeonid KudryavtsevНо и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date не путайте отображение с хранением!!!!! Это ты путаешь! Вот лично у меня, like ни с точкой, ни с запятой ничего не находит. А находит с буковкой "a" вместо decimal separator. См. споллер в сообщение выше. А хранится оно вообще в виде электрончиков на кремниевой подложке. Обычно обозначаемых как кучка единичек и ноликов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:13 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВот лично у меня, like ни с точкой, ни с запятой ничего не находит. А находит с буковкой "a" вместо decimal separator. См. споллер в сообщение выше.а у меня находит, я волшебник? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:16 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
to Mayton. Ты такую порнографию хотел увидеть? Типо на знание присутсвия MetaData в JDBC ? Код: sql 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. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107.
Search in table MSM.CSC_OBJECT sql=SELECT * FROM MSM.CSC_OBJECT WHERE 1=0 OR ID like :ID OR TYPE_RE like :TYPE_RE OR CREATE_METHOD like :CREATE_METHOD OR START_DATE like :START_DATE OR DATE_IN like :DATE_IN OR TAC_ID like :TAC_ID OR USR like :USR OR DWELLING like :DWELLING OR MSM_ID like :MSM_ID OR NAME like :NAME OR LOCATION like :LOCATION OR END_DATE like :END_DATE OR OBJ_ID like :OBJ_ID OR ADR_ID like :ADR_ID OR AREA_SIZE like :AREA_SIZE OR HEIGHT like :HEIGHT OR INSTALL_DATE like :INSTALL_DATE OR PROHIBIT_REASON like :PROHIBIT_REASON OR VER like :VER OR POPULATION like :POPULATION OR FLAG_WORK like :FLAG_WORK OR ROOF_AREA like :ROOF_AREA OR PAVE_AREA like :PAVE_AREA OR SOIL_AREA like :SOIL_AREA OR LAWN_AREA like :LAWN_AREA OR FLAG_INP like :FLAG_INP OR FLAG_OUT like :FLAG_OUT OR FLOORS like :FLOORS OR MSM_NAME like :MSM_NAME OR ROAD_AREA like :ROAD_AREA OR FLAG_ORA like :FLAG_ORA OR FLAG_PDK like :FLAG_PDK OR CAD_TAG like :CAD_TAG OR OD_AREA like :OD_AREA OR AREA_REMARK like :AREA_REMARK OR WAHOR_POWER like :WAHOR_POWER OR WATER_DEPTH like :WATER_DEPTH OR FLAG_FILTR like :FLAG_FILTR OR TRO_ID like :TRO_ID OR LENGTH_DRAIN like :LENGTH_DRAIN OR WIDTH_DRAIN like :WIDTH_DRAIN OR DEPTH_DRAIN like :DEPTH_DRAIN OR FLAG_DRAIN like :FLAG_DRAIN OR VOLUME_DRAIN like :VOLUME_DRAIN OR APD_ID like :APD_ID OR GIS_ID like :GIS_ID OR FLG_COMPLEX like :FLG_COMPLEX OR IMPROVEMENT_ID like :IMPROVEMENT_ID OR LIFE_REQUEST like :LIFE_REQUEST OR LIFE_REQUEST_DESC like :LIFE_REQUEST_DESC OR ARMOR_TECHNOLOGICAL like :ARMOR_TECHNOLOGICAL OR ARMOR_EMERGENCY like :ARMOR_EMERGENCY OR REGISTERED_PEOPLE like :REGISTERED_PEOPLE OR TOTAL_AREA like :TOTAL_AREA OR COMMON_AREA like :COMMON_AREA OR TFI_ID_RV like :TFI_ID_RV OR TFI_ID_RK like :TFI_ID_RK OR OKS like :OKS OR CAD_TAG_ZU like :CAD_TAG_ZU OR TPU_ID like :TPU_ID OR BUSH_AREA like :BUSH_AREA OR COMMON_AREA_1 like :COMMON_AREA_1 OR COMMON_AREA_2 like :COMMON_AREA_2 OR FLAG_124 like :FLAG_124 OR VCKP_FLOORS like :VCKP_FLOORS OR VCKP_IMPROVEMENT like :VCKP_IMPROVEMENT OR IS_ODPU like :IS_ODPU OR COUNT_FLAT like :COUNT_FLAT OR ZNOP_ID like :ZNOP_ID OR OSGC_ID like :OSGC_ID OR GIS_GKH like :GIS_GKH OR OWNERS like :OWNERS OR WATER_AREA like :WATER_AREA { ID=153666, TYPE_RE=1, CREATE_METHOD=1, START_DATE=2000-04-27 15:31:36.0, DATE_IN=2000-04-27 15:31:36.0, TAC_ID=2, USR=MSM, DWELLING=1, MSM_ID=61637/89W, NAME=Многоквартирный дом, LOCATION=null, END_DATE=null, OBJ_ID=null, ADR_ID=186998, AREA_SIZE=null, HEIGHT=null, INSTALL_DATE=null, PROHIBIT_REASON=null, VER=1, POPULATION=null, FLAG_WORK=1, ROOF_AREA=null, PAVE_AREA=null, SOIL_AREA=null, LAWN_AREA=null, FLAG_INP=N, FLAG_OUT=N, FLOORS=null, MSM_NAME=ЖИЛОЙ ДОМ, ROAD_AREA=null, FLAG_ORA=N, FLAG_PDK=Y, CAD_TAG=1676:0:49, OD_AREA=null, AREA_REMARK=null, WAHOR_POWER=null, WATER_DEPTH=null, FLAG_FILTR=null, TRO_ID=null, LENGTH_DRAIN=null, WIDTH_DRAIN=null, DEPTH_DRAIN=null, FLAG_DRAIN=null, VOLUME_DRAIN=null, APD_ID=null, GIS_ID=180895, FLG_COMPLEX=N, IMPROVEMENT_ID=null, LIFE_REQUEST=N, LIFE_REQUEST_DESC=null, ARMOR_TECHNOLOGICAL=N, ARMOR_EMERGENCY=N, REGISTERED_PEOPLE=null, TOTAL_AREA=null, COMMON_AREA=null, TFI_ID_RV=8150, TFI_ID_RK=8340, OKS=Y, CAD_TAG_ZU=null, TPU_ID=null, BUSH_AREA=null, COMMON_AREA_1=null, COMMON_AREA_2=null, FLAG_124=N, VCKP_FLOORS=null, VCKP_IMPROVEMENT=null, IS_ODPU=null, COUNT_FLAT=null, ZNOP_ID=null, OSGC_ID=null, GIS_GKH=Y, OWNERS=null, WATER_AREA=null } { ID=336932, TYPE_RE=1, CREATE_METHOD=1, START_DATE=2013-11-15 11:57:30.0, DATE_IN=2013-11-15 11:57:30.0, TAC_ID=45, USR=MSM, DWELLING=2, MSM_ID=153666/00R, NAME=Детская площадка, LOCATION=null, END_DATE=null, OBJ_ID=null, ADR_ID=138802, AREA_SIZE=null, HEIGHT=null, INSTALL_DATE=null, PROHIBIT_REASON=null, VER=1, POPULATION=null, FLAG_WORK=1, ROOF_AREA=null, PAVE_AREA=null, SOIL_AREA=null, LAWN_AREA=null, FLAG_INP=Y, FLAG_OUT=null, FLOORS=null, MSM_NAME=null, ROAD_AREA=null, FLAG_ORA=N, FLAG_PDK=N, CAD_TAG=78:14:7645А:1016, OD_AREA=null, AREA_REMARK=null, WAHOR_POWER=null, WATER_DEPTH=null, FLAG_FILTR=null, TRO_ID=null, LENGTH_DRAIN=null, WIDTH_DRAIN=null, DEPTH_DRAIN=null, FLAG_DRAIN=null, VOLUME_DRAIN=null, APD_ID=null, GIS_ID=null, FLG_COMPLEX=N, IMPROVEMENT_ID=null, LIFE_REQUEST=N, LIFE_REQUEST_DESC=null, ARMOR_TECHNOLOGICAL=N, ARMOR_EMERGENCY=N, REGISTERED_PEOPLE=null, TOTAL_AREA=null, COMMON_AREA=null, TFI_ID_RV=null, TFI_ID_RK=8370, OKS=Y, CAD_TAG_ZU=null, TPU_ID=null, BUSH_AREA=null, COMMON_AREA_1=null, COMMON_AREA_2=null, FLAG_124=N, VCKP_FLOORS=null, VCKP_IMPROVEMENT=null, IS_ODPU=null, COUNT_FLAT=null, ZNOP_ID=null, OSGC_ID=null, GIS_GKH=null, OWNERS=null, WATER_AREA=null } search finished OK ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:26 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, круть. Но не спешите. Я все таки переделаю интерфейс. Добавлю детекторы Date, Number. Больше входных параметров. И не один коннекшен а много для параллелизма. Далее мне нужна будет толстая БД для симуляции поисков. И надо вкомпилировать хард-кодом в сборку штук 10-20 разных JDBC драйверов чтоб летало везде. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:29 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonLeonid Kudryavtsev, круть. Но не спешите. Я все таки переделаю интерфейс. Добавлю детекторы Date, Number. Больше входных параметров. И не один коннекшен а много для параллелизма. Далее мне нужна будет толстая БД для симуляции поисков. И надо вкомпилировать хард-кодом в сборку штук 10-20 разных JDBC драйверов чтоб летало везде. Нахрена? На моей БД (пара десятков терабайт) оно пару десятков минут, если не часов, искать будет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:31 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Код: java 1. 2. 3. 4. 5.
ты зачем трмозной вариант используешь? так быстрее Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:34 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevmaytonLeonid Kudryavtsev, круть. Но не спешите. Я все таки переделаю интерфейс. Добавлю детекторы Date, Number. Больше входных параметров. И не один коннекшен а много для параллелизма. Далее мне нужна будет толстая БД для симуляции поисков. И надо вкомпилировать хард-кодом в сборку штук 10-20 разных JDBC драйверов чтоб летало везде. Нахрена? На моей БД (пара десятков терабайт) оно пару десятков минут, если не часов, искать будет Это... прекрасно. Как раз есть повод развернуть параллелизм. С другой стороны я писал в родительском топике что заказчик такой работы - говорит что надо найти любой ценой. Сутки? Окей. Тоже катит. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:36 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
авторappend( " like :" ). это уже под конкретную субд закос ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:38 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадя, до core-review мы еще не дошли. Но КМК ты смотришь на оптимизацию под неверным углом. Нужно во первых понять что для данного приложения именно это место будет bottle-neck. А я готов спорить на виски что на самом деле оно есть! но не здесь! А совсем в другом месте. Во вторых я предлагаю тебе дизассемблировать сборку в двух вариантах и посмотреть какой на самом деле javac cобирает код. Очень многие паттерны строковых оптимизаций стали бесполезны после семерки и восьмерки. Вспомни какие ::toString() имплементации генерит твоя IDE. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:40 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяавторappend( " like :" ). это уже под конкретную субд закос Вообще-то, нет. Двоиточие вроде стандарт ANSI. Хотя не уверен. Пофиг. Можно поменять на ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:42 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:44 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяты зачем трмозной вариант используешь? так быстрее Вообще-то IMHO фиолетово. совершенно одинаковая конструкция, которая и выполняться должна совершенно одинаково Не люблю длинных строк в коде. Много коротких строк, проще ошибку найти. И по java сообщению об ошибке (строка выводится, а позиция нет), да и под отладчиком ходить и ставить бряк-поинты удобнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:45 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВообще-то, нет. Двоиточие вроде стандарт ANSI. Хотя не уверен. Пофиг. Можно поменять на ? в mysql like '%xxx%' если так поле COLLATE utf8_general_ci like '%xxx%' то ищет без учёта регистра ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:47 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяmayton, люди уже много чего сделали https://habr.com/post/330220/ Сразу поверил в статью 2017 года? Может все таки продизассемблируешь. P.S. На самом деле я невкурсе девятки и десятки. Но разве у тебя нет инженерного любопытства? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:48 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНе люблю длинных строк в коде Код: java 1. 2. 3. 4. 5.
Leonid Kudryavtsevсовершенно одинаковая конструкция, которая и выполняться должна совершенно одинаково https://habr.com/post/330220/ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:49 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Вы спорите о пустяках. Не жаль времени? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:50 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяmayton, люди уже много чего сделали https://habr.com/post/330220/ Hotspot JVM находит new StringBuilder().append(x).append(y) .toString() паттерны В моем и твоем коде этого нет обходясь без создания промежуточных объектов. создания объектов и так нет похоже, подразумевают создания объекта StringBuilder. Но опять таки, это не наш случай. Нам все равно StringBuilder нужен, т.к. конкатенируем в цикле ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:50 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonP.S. На самом деле я невкурсе девятки и десятки. Но разве у тебя нет инженерного любопытства?я пока под 10 перевожу то что есть, пока не до исследования. и без того проблем хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:50 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНо опять таки, это не наш случай. Нам все равно StringBuilder нужен, т.к. конкатенируем в цикле разница в sql.append( " OR " ) .append( s ) .append( " like :" ) .append( s ) .append( " " ); sql.append( " OR " ); sql.append( s ); sql.append( " like :" ); sql.append( s ); sql.append( " " ); ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:54 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадя...разница в ... бечмарк в студию Ссылка на статью - не катит. Там совршенно про другой паттерн расказывают. new, append, toString а пока - какие-то сказки. Почему три операции записанные в одну строчку, должны быть быстрее, чем те же три операции записанные через перевод строки - какие-то сказки. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 21:10 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяmaytonP.S. На самом деле я невкурсе девятки и десятки. Но разве у тебя нет инженерного любопытства?я пока под 10 перевожу то что есть, пока не до исследования. и без того проблем хватает Жаль. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 21:18 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevа пока - какие-то сказки. Почему три операции записанные в одну строчку, должны быть быстрее, чем те же три операции записанные через перевод строки - какие-то сказки.там есть ссылка и на доклад ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 21:30 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадяmayton, если свяжешься со мной - могу продемонстрировать поиск с использованием like хаха ржака. самый очевидный вариант если в детали не вчитываться. я думаю там что-то иное подразумевалось. не? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 22:23 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
вадя запрос Код: sql 1. 2. 3. 4. 5.
результат"id""nn"164867,89 Double/Float - это очень интересные и сложные типы данных. Они сжимают или хешируют вещественный диапазон чисел как функция класса инъекция на некий ограниченный диапазон констант. Магических чисел. И поиск по вещественному числу как по строке никогда не делают. Если вы хотите поискать - (Реально???) то я советую задать некий криетерий близости (эпсиолон) и точку в окрестности которой вы будете искать число максимально близкое. Это и будет поиск по Double/Float. Так и только так поиск будет осмысленным с математической точки зрения. Все остальные ваши изобретения в части поиска по Float/Double как по тексту обречены на провал и на наличие аномалий которые устранить на уровне операций с строками будет невозможно. Поэтому, я вас прошу оставить вещественный тип в покое до лучших времен. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 22:37 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Ахтунг! Изменения в задании №1. Обновлённый интерфейс. - поддержим пул коннектов - итератор нафиг. Будет Stream. Код: java 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.
Go-go кодить! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 23:06 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
andreykaTвадяmayton, если свяжешься со мной - могу продемонстрировать поиск с использованием like хаха ржака. самый очевидный вариант если в детали не вчитываться. я думаю там что-то иное подразумевалось. не? )) вариант не совсем очевидный. как ни странно. демонстрация реализации. с изменением времени от нажатия до отображения . с возможностью добавлять, изменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 05:18 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
В исходнике Леонида нет поддержки интерфейса ILikeAGoogle Код: java 1. 2.
Вобщем есть поинт на доработку. Кто возьмется? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 18:14 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Еще поинты. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 22:53 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Еще парочку. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 23:03 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
mayton, Практический смысл данного приложения какой? 1) Без обработки типов - практического смысла все равно нет. Тупой like по дефолтному формату - это какой-то говнокод 2) Без возможности выделения пользовательские/служебные поля (прикладная metadata бизнес-приложения) - смысла все равно нет + дыра в секьюрити. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 13:34 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, а какой смысл в Google - поиске? Найти строку везде где только можно. Ты извини ты что там пред поиском все типы указываешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:23 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
maytonLeonid Kudryavtsev, а какой смысл в Google - поиске?... Там cache + обработка файла robots.txt. Взять elastic search и вкачать в него базу - задача осмысленная А искать like-ами по продуктовой базе, без разделения user поля от system поля - дебилизм и полная дары в секьюрити. Вы часто по диску ищите в FAR'а нажанием Alt-F7 с корня диска и маской файлов *.* ? p.s. У нас в базе данных аж переписка с ротенбергами и прочими олигархами встречается. Не думаю, что google поиск с возможностью искать там Навальным и Ко ( C ) не будет считаться "подрывом государственности" ))) Перед тем как давать искать в продуктовых базах, все равно нужно прикладное meta-описание (аналог robots.txt). По табличке с user name + password тоже искать позволим ? maytonТы извини ты что там пред поиском все типы указываешь? А существуют HTML-страницы с типом число или дата? META content type = number или META content type = date? Обычно google все же ищет в content type = text/html или text/plain Т.ч. вопрос не корректный. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:34 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВы часто по диску ищите в FAR'а нажанием Alt-F7 с корня диска и маской файлов *.* ? Ты знаешь когда я стартовал этот топик то я знал что будет "страх и ненависть" в каментах. Потому что этот топик и ко мне прилетал несколько раз лет 10-15 назад. И у меня была 100% такая-же реакция как у тебя. По поводу безопасности я 100% согласен. Вообще сомнительно что кто-то позволит крутить на ПРОД-е такие запросы. Но у этой задачи несмотря на всю ее абсурдность есть еще и некий элемент "недозавершенности". Как будто мы здесь эдакие "жрецы баз данных" наложили строгое табу - никогда ничего подобного не разрабатывать. Кто критиковал bbed? Кто критиковал john-ripper? Ты знаешь какая волна ненависти поднимается в топиках Oracle если ты спрошись про bbed? А это просто грёбаная утилита. Как в NortonUtilites. Которая диски редактирует и файлы в сыром виде. Просто гребаная утилита. И что? Мы не можем ее написать? Или у нас такие сильные предубеждения что мы сами себе ее запретили писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:43 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevА существуют HTML-страницы с типом число или дата? META content type = number или META content type = date? Обычно google все же ищет в content type = text/html или text/plain Т.ч. вопрос не корректный. Окей если ты хочешь сделать поиск по БД более интеллектуальным - я не против. Предлагай. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:49 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Кто будет пользоваться ? Какие прикладные задачи ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:53 |
|
Четверговый поиск в БД like a Google.
|
|||
---|---|---|---|
#18+
Леонид. Господи. Да это хакатон. Никто не будет пользоваться. Ну хочешь ты пользуйся потом... Ты что тяпничных и четверговых топиков нечитал? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:56 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121021]: |
0ms |
get settings: |
26ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
1011ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 1436ms |
0 / 0 |