powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Четверговый поиск в БД like a Google.
25 сообщений из 60, страница 1 из 3
Четверговый поиск в БД like a Google.
    #39702232
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет други!

В продолжение топика JDBC необязательные параметры

Надо реализовать имплементацию такого интерфейса.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public interface ILikeAGoogle extends Closeable {

    void setConnection(Connection connection);

    /**
     * Lookup in generic database
     *
     * @param expression - search expression (for ex: "bla-bla")
     * @return collection of pairs : table name, data row (in JSON format).
     *
     * @throws SQLException
     */
    Iterator<Pair<String, Gson>> lookup(String expression) throws SQLException;

}




Приветствуется
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.
$ java -jar YourCustomDbmsLikeAGoogleSearch.jar "jdbc:oracle:thin:scott/tiger@127.0.0.1:1521/XE" "KING"

Found table EMP:
Found datarow: { empno=7839, ename='KING',  job='PRESIDENT', 
 hiredate='17-11-1981', sal=5000, deptno=10}

$ java -jar YourCustomDbmsLikeAGoogleSearch.jar "jdbc:sqlserver://sql.ru:55555;databaseName=Борей;user=BillGates;password=superBill "Четверговый"

Found table TOPICS:
Found datarow: { author:mayton, tid=283746, text="Четверговый поиск в БД like a Google."}




Предлагайте ваши варианты. У меня своей реализации еще нет.

Go-go кодить!
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704463
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное насчёт одного connection я был не прав. По идее пул надо передать.
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704467
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл?

Проблем не вижу.

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
(пробел в качестве разделителя тысячных разрядов)
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704480
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevДаже с number есть "стремность". Как искать подстроку "1234" ? Т.к. формат чисел вполне может быть:
1 234 567.89вот только не надо путать отображение с тем, что хранится
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704487
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяLeonid KudryavtsevДаже с number есть "стремность". Как искать подстроку "1234" ? Т.к. формат чисел вполне может быть:
1 234 567.89вот только не надо путать отображение с тем, что хранится
Тогда перефразирую вопрос:
Как правильно искать подстроку "1234" в хранимом значение ‭000100101101011010000111‬ ?
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704491
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть число хранимое в СУБД:

один миллион двести тридцать четыре тысячи пятсот шестесят сем и восемьдесят девять тысячных

По техническому заданию, в этом числе, ищут подстроку "1234"

Есть ли она там или ее там нет?

Во фразе "один миллион двести тридцать четыре тысячи пятсот шестесят сем и восемьдесят девять тысячных" - "1234" - нет
В представление в формате с пробелом в качестве разделителя тысячных "1 234 567.89" - нет
В двоичном виде в памяти компьютера (без тысячных) "000100101101011010000111‬" - тоже нет

Но, есть подозрение, что mayton считал, что все же, ответ "есть" )))

Хотелось бы конкретизировать Т.З. Как искать строки в number.
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704496
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТогда перефразирую вопрос:
Как правильно искать подстроку "1234" в хранимом значение ‭000100101101011010000111
поле в котором записано‭ 000100101101011010000111 - какой тип имеет? строковый ? инт?

Leonid KudryavtsevВо фразе "один миллион двести тридцать четыре тысячи пятсот шестесят сем и восемьдесят девять тысячных" - "1234" - нет
В представление в формате с пробелом в качестве разделителя тысячных "1 234 567.89" - нет
В двоичном виде в памяти компьютера (без тысячных) "000100101101011010000111‬" - тоже нет
если искать where поле like '%1234%' найдет
потому как поле будет преобразовано в строку 1234567.89
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704497
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

я такое уже показывал 21673479
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704504
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

если свяжешься со мной - могу продемонстрировать поиск с использованием like
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704511
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevDate нужно?

Давайте подумаем. Допустим я ищу 16-mar-2018.
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704513
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяполе в котором записано‭ 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
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704515
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДавайте подумаем. Допустим я ищу 16-mar-2018.смотря где искать
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704520
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Даже с number есть "стремность". Как искать подстроку "1234" ? Т.к. формат чисел вполне может быть:
1 234 567.89
(пробел в качестве разделителя тысячных разрядов)
Если число целое то я вообще не вижу проблемы.
Символы группировки можно убрать и искать как строку.

Decimal - приводить к единой форме с точкой и искать.

Float и double - не надо вообще.
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704521
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmayton,

если свяжешься со мной - могу продемонстрировать поиск с использованием like
Куда? У нас что, клуб личных встреч?

Пиши сюда. У меня нет секретов.
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704526
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКуда? У нас что, клуб личных встреч?

Пиши сюда. У меня нет секретов.у меня нет публичного постоянно работающего сервера - поэтому могу только на время предоставить доступ
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704527
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я к тому, что искать подстроки в любых других типах данных, отличных от char/string, можно только договорившись о дефальтном настройке форматов преобразования типов

если с числами, это еще не так очевидно, то с Date это уже в полный рост

Т.ч., в общем, если выкинуть "Искать в стрёмных datatypes" то кроме String-подобных типов + Number + Date ничего и не остается.

Но и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704529
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonКуда? У нас что, клуб личных встреч?

Пиши сюда. У меня нет секретов.у меня нет публичного постоянно работающего сервера - поэтому могу только на время предоставить доступ
Ты что женщина?
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704534
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonFloat и double - не надо вообще.ну не надо так не надо
но уже
таблица
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE test.z1 (
  id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  nn float(8, 4) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 2,
CHARACTER SET utf8,
COLLATE utf8_general_ci;


данные"id""nn"164867,892454,779

запрос
Код: sql
1.
2.
3.
4.
5.
SELECT
  z1.id,
  z1.nn
FROM z1
WHERE z1.nn LIKE '%67.89%'


результат"id""nn"164867,89
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704535
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы что женщина?нет, ну не оставлять же комп шуметь пока не используется :)
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704536
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevя к тому, что искать подстроки в любых других типах данных, отличных от char/string, можно только договорившись о дефальтном настройке форматов преобразования типов

если с числами, это еще не так очевидно, то с Date это уже в полный рост

Т.ч., в общем, если выкинуть "Искать в стрёмных datatypes" то кроме String-подобных типов + Number + Date ничего и не остается.

Но и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date
Давайте пока в режиме XP.

Будем копить поиск строк в строках.

А потом я оформлю user story для расширенных поисков .
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704539
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНо и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date
не путайте отображение с хранением!!!!!
авторdecimal separatorэто только для вывода.

если у тебя число/дата хранится в строке - то тут уже трудно о чём-то договариваться
если в отдельных полях - проблем вообще нет
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704540
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonТы что женщина?нет, ну не оставлять же комп шуметь пока не используется :)
Мне не интересно смотреть на готовые коробочные решения.

Я дал тему. Хочешь - кодь. Не хочешь - подними другой топик где будет твоя тема и твой продукт.
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704541
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне не интересно смотреть на готовые коробочные решения.

Я дал тему. Хочешь - кодь. Не хочешь - подними другой топик где будет твоя тема и твой продукт.как хочешь
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704550
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяLeonid KudryavtsevНо и то, для number, хорошо бы default group и decimal separator обговорить. Но тогда, аналогично, и формат для Date
не путайте отображение с хранением!!!!!

Это ты путаешь!

Вот лично у меня, like ни с точкой, ни с запятой ничего не находит. А находит с буковкой "a" вместо decimal separator. См. споллер в сообщение выше.

А хранится оно вообще в виде электрончиков на кремниевой подложке. Обычно обозначаемых как кучка единичек и ноликов.
...
Рейтинг: 0 / 0
Четверговый поиск в БД like a Google.
    #39704553
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВот лично у меня, like ни с точкой, ни с запятой ничего не находит. А находит с буковкой "a" вместо decimal separator. См. споллер в сообщение выше.а у меня находит, я волшебник?
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Четверговый поиск в БД like a Google.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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