Подскажите как создать в представлении...

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

Mihal

<!--QuoteBegin-Medevic+6:12:2006, 08:30 -->
<span class="vbquote">(Medevic @ 6:12:2006, 08:30 )</span><!--QuoteEBegin-->Нет. Типа NotesView.SelectionFormula = "..."
[snapback]49965" rel="nofollow" target="_blank[/snapback]​
[/quote]

А кто и когда будет менять Selection formula. Агент?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-Mihal+6:12:2006, 11:03 -->
<span class="vbquote">(Mihal @ 6:12:2006, 11:03 )</span><!--QuoteEBegin-->А кто и когда будет менять Selection formula. Агент?
[snapback]49975" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну да.
Агент на сервере от имени другого пользователя (Run on behalf of).
Я еще сделал профильные документы для каждого пользователя (они же используются агентом). В результате есть неплохой UI для составления фильтра и место для хранения настроек. Агент просто берет формулу из документа и меняет её.
Чтобы нормально работало, нужно иметь представление для каждого пользователя, кто будет им пользоваться. Автоматом это несложно сделать.
Скорость вполне приемлема. А удобство вообще на высоте.
Минусы:
1) если задать формулу, по которой будет не будет найдено документов, то представление не обновится (т.е. будут показаны старые документы) пока не нажмешь F9.
2) если в процессе перестроения представления попытаться еще раз сменить формулу, то получим красный экран. :blink:
3) нагрузка на сервер. Зависит от интенсивности использования.
 
M

Mihal

Для: Medevic
Ещё один минус - это всё же не полнотекстовый поиск. Хотя бывает, что именно такой и надо. Ну и представление под каждого пользователя - тоже не плюс.

А можно указать временные характиристики? Например, в базе из n документов время на поиск и показ m документов занимет t секунд?
 
30.05.2006
1 345
12
BIT
0
Агент на сервере от имени другого пользователя (Run on behalf of).
И даже не on behalf. Главное, что RunOnServer
Чтобы нормально работало, нужно иметь представление для каждого пользователя, кто будет им пользоваться. Автоматом это несложно сделать.
Во.. Хорошо, если юзеров 10. А если 1000?
Скорость вполне приемлема. А удобство вообще на высоте.
Минусы:
Главный минус: такой "поиск" работает путем полного тупого перебора ВСЕЙ базы. Индексы не используются. Хорошо, если в ней 1-5 тысяч документов. А если 100 000? Или 1000 000? db.Search({formula}, dat, n) и то быстрее работает (если грамотно задать 2-3й параметры).

IMHO: динамическая подмена selection-формул очень полезная фича. Но пользовать её надо оч.осторожно. Например для для поддержки вьюх типа "документы за сегодня" "..за неделю" и т.п..
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-Mihal+6:12:2006, 11:34 -->
<span class="vbquote">(Mihal @ 6:12:2006, 11:34 )</span><!--QuoteEBegin-->Ещё один минус - это всё же не полнотекстовый поиск. Хотя бывает, что именно такой и надо.
[snapback]49981" rel="nofollow" target="_blank[/snapback]​
[/quote]
В моем случае как раз такой и надо. Используется только в одной базе.

<!--QuoteBegin-Mihal+6:12:2006, 11:34 -->
<span class="vbquote">(Mihal @ 6:12:2006, 11:34 )</span><!--QuoteEBegin-->Ну и представление под каждого пользователя - тоже не плюс.
[snapback]49981" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ага. В моем случае, этим поиском пользуется один человек. :blink:

<!--QuoteBegin-Mihal+6:12:2006, 11:34 -->
<span class="vbquote">(Mihal @ 6:12:2006, 11:34 )</span><!--QuoteEBegin-->А можно указать временные характиристики? Например, в базе из n документов время на поиск и показ m документов занимет t секунд?
[snapback]49981" rel="nofollow" target="_blank[/snapback]​
[/quote]
Сложно сказать. Зависит от того, сколько документов была изначально в представлении и сколько должно появится после применения формулы, от сортировок колонок (у меня 19 колонок с возможностью сортировки) и других настроек базы.
С пустой формулой (т.е. должны быть показаны все документы) получается около 10 тыс. документов.
Применил формулу, в результате которой было найдено 176 документов. Время 34 с.
После чего применил формулу, результат которой 7900 документов. Время 65 с.
Потом 7900->5200. 38 с.
Проверял на базе, которая находится в другом городе. Если сервер недалеко, то будет быстрее.

Для: Constantin A Chervonenko
Согласен. Если бы этот метод был бы панацеей от всех бед, то пользовались бы им. :D
 
L

LuMee

Тут увидел в одной базе тоже забавное решение: в качестве результата поиска формируется документ с RichText-полем, в которое результаты с doclink'ами складываются. Жаль только, сгруппировать данные красиво этим методом будет непросто :angry:
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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