powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проектирование на Java набора компонент в стиле визуального програмирования
25 сообщений из 101, страница 3 из 5
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185796
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakНа каком объеме записей? У меня в частности для подобного запроса по номенклатуре из 12000 позиций работает одним SQL-запросом в Постгресе. Если надо, могу выложить сюда. По времени примерно 0.3-0.5с.
Мой вопрос был в целом риторический. Из меня щас инфу надо брать
в состянии гипноза. Ибо давно это было. Многое я просто не помню.

Но могу примерно вспомнить. Городской калл-центр. Типа справочной службы.
Звониш. Гришь-дескыть - Девушка дайте регистратуру 1-й городской больницы.
Она лезет в Sybase-приложение. И через UI по классификатору гео-объектов
города находит что нужно. Количество объектов - это всё что может быть в 1.5 миллионном
городе. Придумайте сами цифру короче.

Железо и софт - датируется 2002 годом примерно. На сервере кажется Pentium-Pro/512M + Oracle8i.
Опция TextSearch толи отсутствовала толи мы про нее просто не знали. Вобщем такие
реалии.

Но и сейчас спустя много лет - текстовый (like a Google) поиск регулярно
всплывает как постановка на реляционных данных.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185797
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakmaytonИзвечный вопрос который мне задавали... теперь я задаю. А вот
как-бе сделать такой понимаеш поиск чтоб ты набрал в панели поиска:

Код: java
1.
Мос гор бол



и тебе выпал список московских городских больниц. А?
Ну кто технически готов описать что нужно сделать в части БД и в части AppTier?

И чтоб 30 секунд не ждал.... ибо клиент на проводе висит.

На каком объеме записей? У меня в частности для подобного запроса по номенклатуре из 12000 позиций работает одним SQL-запросом в Постгресе. Если надо, могу выложить сюда. По времени примерно 0.3-0.5с.

Если не затруднит... очень интересно
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185817
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with f as (select w || '%' as word from regexp_split_to_table(Upper(:__find), ' ') w where w!=''),
     c as (select count(*) as cnt from f)
select s.Id, s.Name
from Nomenclature s, c
where c.cnt>0 and
    c.cnt = (select count(*) cnt
               from (select snw
                     from regexp_split_to_table(Upper(regexp_replace(s.Name, '[(),;:.+-]', '', 'g')), ' ') snw, f
                     where snw.snw like f.Word) as ccc)



Принцип дубовый.
Введенную строку (параметр __find) разбиваем по пробелам в набор данных. Заодно подставляем '%' для последующих LIKE-ов.
Для каждой строки таблицы разбиваем наименование на слова по пробелу (тоже получаем набор данных) и выбираем те, у которых каждая строка из первого набора встречается в этом наборе.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185859
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with f as (select w || '%' as word from regexp_split_to_table(Upper(:__find), ' ') w where w!=''),
     c as (select count(*) as cnt from f)
select s.Id, s.Name
from Nomenclature s, c
where c.cnt>0 and
    c.cnt = (select count(*) cnt
               from (select snw
                     from regexp_split_to_table(Upper(regexp_replace(s.Name, '[(),;:.+-]', '', 'g')), ' ') snw, f
                     where snw.snw like f.Word) as ccc)



Принцип дубовый.
Введенную строку (параметр __find) разбиваем по пробелам в набор данных. Заодно подставляем '%' для последующих LIKE-ов.
Для каждой строки таблицы разбиваем наименование на слова по пробелу (тоже получаем набор данных) и выбираем те, у которых каждая строка из первого набора встречается в этом наборе.
где-то рядом, но слишком наворочено. при 10 000 000 будут тормаза
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185896
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with f as (select w || '%' as word from regexp_split_to_table(Upper(:__find), ' ') w where w!=''),
     c as (select count(*) as cnt from f)
select s.Id, s.Name
from Nomenclature s, c
where c.cnt>0 and
    c.cnt = (select count(*) cnt
               from (select snw
                     from regexp_split_to_table(Upper(regexp_replace(s.Name, '[(),;:.+-]', '', 'g')), ' ') snw, f
                     where snw.snw like f.Word) as ccc)



Принцип дубовый.
Введенную строку (параметр __find) разбиваем по пробелам в набор данных. Заодно подставляем '%' для последующих LIKE-ов.
Для каждой строки таблицы разбиваем наименование на слова по пробелу (тоже получаем набор данных) и выбираем те, у которых каждая строка из первого набора встречается в этом наборе.

Круто. И главное к месту.. как раз делал поиск в портале. Спасибо.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185908
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не круто... слишком медленно и не оптимально
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185928
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяне круто... слишком медленно и не оптимально

только если использовать full-text search но там только по началу текста или слова целиком. Начиная с Mysql 5.6 можно делать так

Код: plsql
1.
2.
3.
4.
5.
SELECT MATCH(column) AGAINST('(word1* word2*) ("word1 word1")' IN BOOLEAN MODE) score, id, column 
FROM table
having score>0
ORDER BY score 
DESC limit 10;



а у меня версия 5.5 (
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39185933
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь нет самого главного. Оптимизации под text search.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186017
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так первый вопрос и был про объемы. То, что можно сделать на 10 тыс, не пойдет на 10 млн и наоборот: навороты для 10 млн записей бессмысленны для 10 тыс.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186028
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak,
тут надо говорить о системе в целом. и для системы находить оптимум.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186029
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяAlexander A. Sak,
тут надо говорить о системе в целом. и для системы находить оптимум.

Ну хотябы в двух словах, вадя, какое у тебя решение?
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186035
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
текст ппоиск не самое лучшее решение, к сожалению. и ещё надо у,учитывать тип базы и версию..., что очень важно.
mysql 5.7 это уже совсем новая ....и то, что может она, на несколько порядков выше, чем прешествннники
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186036
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zenia,
дайте до компа доехать
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186062
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76А там возможно организовать быстрый просмотр списка скажем из пары миллионов строк? Т.е. некий готовый компонент который позволяет, при быстром листании скроллером подгружать только строки в том блоке на котором скроллер остановился, и при этом не делается подрузка всего что налистали. Не хочется такую простую вещь реализовывать с нуля
selis76Там это в советуемом редакторе Web форм. Просто если у меня в табличке СУБД несколько миллионов строк и нужен грид для листания, сделать листание быстрым непростая задача тем более если клиент тонкий. Хочется готовый компонент, и не писать свой код под такие задачи. Видел пару приложений на Java реализующих интерфейс к субд - там все ограничивалось загрузкой фиксированного набора данных на клиентскую часть типа сразу 30000 строк и как то все медленно ворочилось это в интерфейсе.
в 1с например с этим проблем нет, там визуальные компоненты учитывают эти нюансы
Так откройте отдельный топик с вопросом как организовать быструю паджинацию. И в нескольких разделах, в http://www.sql.ru/forum/java в http://www.sql.ru/forum/systems-architecture в http://www.sql.ru/forum/db-design и соберете рецепты. Наверняка для такой задачи уже есть масса готовых шаблонов
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186066
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНыне это считается идеологически не верно (хотя для некоторых систем так приходится делать)

Рекомендуется сначала выполнить ПОИСК и потом посмотреть ОСМЫСЛЕННЫЙ набор данных. Выдавать на экран интерфейс хоть с миллионом, хоть с 30 тысячами строк - считается мовитон и бесмысленно. Человек их все равно физически "пролистать" не сумеем. А если не сумеет, зачем их показывать?

IMHO & AFAIKВы не работали с базами данных, содержащими ошибочные записи. А это часто реальный кейс, хотя идеологически и неверное решение
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186070
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНа мой взгляд, после "смерти" FoxPro & Access нормальных средств разработки БД нет.Нормальных нет. Просто идеология поменялась с тех пор. В предприятиях запада как я понимаю принято делать БД с доступом через браузер, на JSP/JSF или C# WebForms или что там у них.
А ActiveXы и прочие нативные формочки на аксессе и дельфи уже похоронены и объявлены легаси
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186073
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev Почему в FoxPro в 1990 году это не составляло проблем, а в 2015 году возникли "технические накладные" ?Элементарно, Ватсон. FoxPro в 1990м была однопользовальской БД и никому бы тогда в голову не пришло что с одним файлом может работать 150 клиентских машин. Сразу бы всё рассыпалось и целостность бы умерла. Еще NetWare вспомните
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186077
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76Думаю понятно - что хочется чтото готовое из чего можно делать интерфейсы связанные с СУБД. Свое написать можно всегда.

Кстати, на этом форуме каждый месяц подобный топик всплывает. уже бы давно кто-нибудь готовым должен был поделиться
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186080
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЯ тебе больше скажу, современный I-net в ряде случаев быстрее тогдашних "локальных сетей"Неа, инет не быстрее. Сейчас каждый пакет анализируется через DPI и все адово тормозит. вот году так в 2007-2010 инет еще был быстрый. я нажимал ссылку в браузере и буквально меньше чем через полсекунды имел полученную и сверстанную страницу, с картинками. и все по adsl 3Mbit. а с тех пор начали внедрять железный занавес в рунете, сейчас жму ссылку и жду не меньше наверно секунд трех, пока закачается сайт. пинги кое-как летают, а вот весь http тормозит из-за проверок
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186084
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЯ сейчас на либы для Web-GUI посмотрел, и вернулся на Servlet'ы (сейчас правда JSP). Т.к. моих знаний HTML, CSS и JQuery явно не достаточно, что бы разобраться почему одно с другим не дружит и съезжает. И разбираться желания нет от слова совершенноВот это - точно
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186085
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kenny FartmanLeonid Kudryavtsev Почему в FoxPro в 1990 году это не составляло проблем, а в 2015 году возникли "технические накладные" ?Элементарно, Ватсон. FoxPro в 1990м была однопользовальской БД и никому бы тогда в голову не пришло что с одним файлом может работать 150 клиентских машин. Сразу бы всё рассыпалось и целостность бы умерла. Еще NetWare вспомните
неубедительно.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186097
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kenny FartmanТак откройте отдельный топик с вопросом как организовать быструю паджинацию
+1
аффтар второй топик не в ту сторону плывёт imho
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186098
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kenny FartmanЭлементарно, Ватсон. FoxPro в 1990м была однопользовальской БД и никому бы тогда в голову не пришло что с одним файлом может работать 150 клиентских машин. Сразу бы всё рассыпалось и целостность бы умерла. Еще NetWare вспомните
1. Я говорил про FoxPro 2.6. Вполне себе сетевая.

2. Примерно на такое заявление конкурентов в 1997 на конференции в Этнографическом музее,что у них "крутые БД", а FoxPro не надежно и для маленьких БД, Ю.М. вышел из зала, дошел до отдела учета и вернулся с распечаткой статистики, что в БД введено > 1 миллиона предметов. Никаких проблем за >5 лет эксплуатации не было.

Когда появился FoxPro 2.5 и Lantastic, сетевые карточки выдавали по 1 Mib/sec на коаксиале. Витая пара появилась очень не скоро.
Kenny FartmanЕще NetWare вспомните
Можно и NetWare вспомнить.
NetWare для того же FoxPro обеспечивала ТРАНЗАКЦИИ. Несмотря на то, что File-Server система.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186104
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне вспоминается статья Стоунбрейкера где он сомневается в эффективности параллелизма
для современных DBMS. В части OLTP операций.
...
Рейтинг: 0 / 0
Проектирование на Java набора компонент в стиле визуального програмирования
    #39186115
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мой вариант проще быстрее, понятнее.
при вводе каждого символа на сервер отправляется введённая строка.
на сервере по пробелам строка разделяется и добавляется like
если введено мос гор бол
серверный код делает строку
поле like '%код%' and поле like '%гор%' and поле like '%бол%'
кторорая является параметром для хранимки
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
PROCEDUREa(IN sss VARCHAR(255))
BEGIN
  SET @sql = CONCAT_ws('','SELECT  id FROM a   WHERE ', sss);
        
PREPARE query_ FROM @sql;
EXECUTE query_;
DEALLOCATE PREPARE query_;
END


всё
соответственно частей разделённых пробелом может быть любое количество
...
Рейтинг: 0 / 0
25 сообщений из 101, страница 3 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Проектирование на Java набора компонент в стиле визуального програмирования
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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