Последний параметр метода Search не работает?

  • Автор темы IsAvailable
  • Дата начала

Мыш

Lotus Team
12.02.2008
1 224
29
BIT
102
сам сейчас в просрации, заменить нечем, лупить кучу видов не выход
А что - формула для поиска прям вот каждый раз полностью новая? Если в каждой формуле все-таки есть некая постоянная часть (скажем, Form=<Значение>), то строим вид, отбираем коллекцию, а по остатку формулы - Evaluate для каждого документа в коллекции ... :))) Жестоко тормозить будет, видимо... Хотя для 10-ти документов... :)
 
A

Akupaka

Если в каждой формуле все-таки есть некая постоянная часть (скажем, Form=<Значение>), то строим вид, отбираем коллекцию, а по остатку формулы - Evaluate для каждого документа в коллекции
Ну, это кагбе издевательство. А если у меня кол-во доков в порядках 10*5?
Можно фт-поиском добиться желаемого (или почти) результата.

Виды вообще не стоит просто так набивать. От их кол-ва и размеров зависит производительность БД вообще.
А для группы отчетов, тем более, не постоянных, не всегда удается составить очень-очень оптимальный вид, поэтому одноразовые поиски и существуют, наверняка.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
Издеваешсо, да? К примеру, шедульный.
Тьфу!..
агент не может обработать за запуск более, к примеру, 10 документов. Зачем ему доставать больше?
Ром, всё равно не пойму тебя... как это он не может обработать больше 10-ти? Или это ты поставил такое условие?
Не пойму, почему обязательно 10? Разве когда-нибудь в реальных проектах такие яйца встрачались? (страусиные-страусиные... )) )
Вот кто-то пишет шедульный агент по обработке некоторых документов в базе, и пытается его оптимизировать, чтобы он делал не больше, чем может, чем ему нужно за раз.
Что сказать - красавец!
А как он узнает, что эти данные уже были обработаны имено этим процессом и он не отберёт эти данные повторно и не внесёт в них изменения ещё раз??
> в вид-то первые 10 документов не отберешь
Почему же? Реляционные БД с этим справляются на ура, а домино как обычно.
Мало того, серверу не обязательно искать ВСЕ документы в базе, чтобы вернуть только 10 затребованных, особенно, если эти десять уже были найдены, например, после проверки лишь 20% всех данных. Влад, есть возражения? ;)
Я всё никак не могу понять, что значит первые? :)
Если мы говорим о 10-ти документах вообще, то да, какие могут быть возражения )))

Ой-ей... Большинство задач лотусиста сводится к исправлению глюков платформы, "чтоб работало как надо".
100%!
А даже, если и так? Лотус на столько крут, что программы типа сайта знакомств не его удел?
Лотус не крут, а стар )))
Глянь что в мире делается последние пол года - все прям помешались на документоориентированных БД (это мне даже реляционщики с удивлениям говорят, NoSQL их называют), посмотри сравнения, например MongoDb... они понемножку начинают рвать по производительности даже реляционок! О Домине и речи нет, т.к. в MongoDb, CouchDb механизмы поисковых запросов уже на голову выше! Это для этих БД сайты знакомств и т.п... а Лотус - доколе на этих системах пока не построили платформу, аналогичную Домине, вот тут последняя и загнётся...(
 
A

Akupaka

как это он не может обработать больше 10-ти? Или это ты поставил такое условие?
Не пойму, почему обязательно 10? Разве когда-нибудь в реальных проектах такие яйца встрачались?
А ты цепкий ))
На твой вопрос:
Какая область применения?
Я привел пример:
"Опытным путем определено, что автоматический агент может обработать не более десяти докУментов за запуск"
Это следовало читать как:
Некоторый программист разработал приложение, в котором пользователи вносят некоторые данные.
Эти данные требуют определенной обработки. Программист решил, что данные будут обрабатываться шедульным агентом.
Данные для обработки отбираются поиском - ДБПоиск.
Но вот беда, программист заметил, что агент за запуск успевает обработать не более десяти (пятнадцати, пятидесяти, это некое абстрактное число для примера ))) я теперь только понял, в чем загвоздка моего поста, который вызвал такой резонанс ))) документов, т.к. поиск занимает некоторое время, да и обработка. Поэтому он решает ограничить результат поиска кол-вом в десять документов, чтобы сервер не проводил "лишний" поиск. Т.е. он оптимизировал агент таким образом.

Т.е. то, что агент может обработать за запуск лишь десять документов - это было для примера сказано!

Я всё никак не могу понять, что значит первые?
Ну вот еще. У тебя есть горшок, в котором есть 100 шариков, 30 черных, 20 белых и 50 красных.
Тебе дают задачу: вытащить вслепую из горшка 15 красных шариков. Шарики в горшке лежат как попало.
Естественно, что ты будешь вытаскивать из горшка шарики один за другим, пока не наберется 15 красных шариков.
Остальные будешь складывать в стороне, а не бросать обратно, чтобы они не мешали искать красные.

И вот, если ты будешь искать только нужные 15 красных шариков, т.е. первых 15 красных шариков, то может случиться, что ты вытащишь с 15-ти попыток 15 красных, либо вытащишь всего 30 шариков в разной последовательности, но из них 10 белых, 5 черных и 15 красных. В самом сложном случае, если тебе не попадется ни одного красного шарика пока не вытащишь все остальные, а в конце пойдут сплошь красные, ты вытащишь из 100 всего 65 шариков.

Что делает домино? Он вытряхивает все содержимое горшка на стол, откладывает в сторону все шарики кроме красных, тебе отдает все! красные и говорит: вот те 15 красных шариков, что ты просил! )))

вот тут последняя и загнётся
Где-то так оно и будет. Поэтому я и говорю, пока не поздно учите яву, .нет, что угодно и паралельно с этим не связанные с языком средства: анализ, процессы разработки и т.п.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
В целом - ясно ))

Но вот беда, программист заметил, что агент за запуск успевает обработать не более десяти (пятнадцати, пятидесяти, это некое абстрактное число для примера ))) я теперь только понял, в чем загвоздка моего поста, который вызвал такой резонанс ))) документов, т.к. поиск занимает некоторое время, да и обработка. Поэтому он решает ограничить результат поиска кол-вом в десять документов, чтобы сервер не проводил "лишний" поиск.
А как он узнает, что эти данные уже были обработаны имено этим процессом и он не отберёт эти данные повторно и не внесёт в них изменения ещё раз??
Пример: надо обработать все... красные шарики ))) приплюсовав к значению определённого поля, допустим, число 20 )))))
Т.е. он оптимизировал агент таким образом.
Нечо делать оптимизировал... Только тут не от программиста зависит... надо либо менять расписание агентов/репликаций/и т.д... чтобы уменьшить нагрузку не сервер, чтобы Amgr мог нормально работать, либо покупать таблетки от жадности, а в месте с ними новое железо под сервер)))


Это здорово, конечно, придумывать варианты, но мы же видим, что такие решения не выдерживают критики...
Вот мне и интересно, зачем автору это понадобилось?..
 
I

IsAvailable

VladSh
Да на самом деле не суть даже, зачем это! ИМХО, работать все должно так, как задокументировано. Если работает не так, значит это бага. Область применения тут не играет абсолютно никакой роли. Так ведь?

А вообще, задачка такая: есть две базы, мне нужно в документы первой вставлять ссылки на документы из второй.
Конечно, самый простой способ - делаем вьюху во второй базе и из первой пиклистом даем выбирать документы.
Но этот способ самый простой для меня как программиста, а пользователя напрягает видеть много документов, лазить по вьюхе и искать нужный ему документ среди нескольких тысяч...
В данной ситуации мне кажется логичным дать пользюку возможность забить часть номера, или часть заголовка, или еще какие параметры определить. После этого найти все документы, удовлетворяющие этому запросу, показать их пользюку, чтобы он "тыкнул" в нужный ему.
Так вот если он введет для запроса какие-то данные, типа Номер = "1", то доков таких будут сотни... т.к. эта цифра встречается чаще, чем в каждом 10-ом документе.
Поэтому возникает жаление показывать всегда, скажем, первые 20 документов, а надо ему больше - пусть конкретизирует параметры поиска или лезет искать по вьюхе.

Тебе нужны страусиные яйца? Мне нет. А вот страусу без них никак...
Зачет за сравнение! Прям в самую точку! :)

Search, вроде бы, создает что-то вроде временного вида с указаной формулой отбора
К сожалению, это не так. Было бы так, хоть можно было бы что-то с этими данными делать, кроме как перебирать их в непонятном (ну вообще понятном, но с точки зрения приложения - не понятном) порядке. Будь возможность серчем отобрать "вьюху" с n столбцами (с вычисляемыми значениями), отсортированное все по значению одного из столбцов... тогда из всех существующих приложений можно было бы начать лопатами выгребать кучу всякого ненужного и бессмысленного кода ))))))))))))))))))
 
30.05.2006
1 345
12
BIT
0
Это разве не задача разработчика правильно сформировать фильтр поиска, т.е. составить формулу, чтобы не отбирать лишнее?
...
Т.е. нам фактически до фонаря, какие 10 он возвратит из 10-ти тысяч??? И потом мы будет куда-то записывать или изменять эти данные? Да!... вот это логика приложения...
Нормальная логика.
Неужели ни разу при разработке прикладухи не возникал вопрос: "Есть-ли в базе ХОТЬ ОДНА запись некоторого сорта?"
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
Поэтому возникает жаление показывать всегда, скажем, первые 20 документов, а надо ему больше - пусть конкретизирует параметры поиска или лезет искать по вьюхе.
В принципе понятно, спасибо за пояснения.
А почему нельзя сделать по аналогии с вэбом: т.е. как страницы темы/форума?

Неужели ни разу при разработке прикладухи не возникал вопрос: "Есть-ли в базе ХОТЬ ОДНА запись некоторого сорта?"
Возникал, давно... Когда делали блокировку на таймере :)
Теперь не возникает.
 
A

Akupaka

В данной ситуации мне кажется логичным дать пользюку возможность забить часть номера, или часть заголовка, или еще какие параметры определить. После этого найти все документы, удовлетворяющие этому запросу, показать их пользюку, чтобы он "тыкнул" в нужный ему.
Как будешь показывать-то? :) Разве что в папку...
 
I

IsAvailable

А почему нельзя сделать по аналогии с вэбом: т.е. как страницы темы/форума?
Чтобы было типа многостраничное представление? Или как? Какими средствами?
Это ведь еще все и на форме через диалогбокс все... Особо много всего пихать нет жаления.
Но все равно варианты интересны. Может, в другом месте где применю : )

Akupaka сказал(а):
Как будешь показывать-то?
Ну как вариант - список, чекбокс, и т.п. (алиасом можно юниды фигачить : ) )
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
Чтобы было типа многостраничное представление? Или как? Какими средствами?
Да. Например, как Akupaka говорит - ложить в папку (это затратно + траблы с приватностью) и её отображать...
Вот например можно указать кол-во доков на странице (в Count), и подтянется только то, что будет на 1-й странице.
Код:
http://web3.inttrust.ru/site/itforum.nsf/MTKK!OpenForm&Start=1&Count=100&Collapse=1&ResortDescending=7
Мне всегда было интересно, а что если внедрить объект браузера в LN-форму и ей скормить подготовленную ссылку?..

Вручную формировать страницу в html и переходы на следующие страницы не предлагаю.
 
A

Akupaka

Мне всегда было интересно, а что если внедрить объект браузера в LN-форму и ей скормить подготовленную ссылку?..
Авторизация будет требоваться, полагаю, что ССО тут не реализовано, хотя, слышал *заговорчески*, что Xpages.... ))
Вручную формировать страницу в html и переходы на следующие страницы не предлагаю
А че? Так тоже красиво очень можно сделать. Спроси у Ленки, пусть тебе покажет :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!