Форум продуктов IBM Lotus

Общие вопросы => Разработка приложений => Тема начата: Sergey_st85 от 07 Сентябрь 2009, 15:15:07

Название: Давайте представим цикл в цикле.
Отправлено: Sergey_st85 от 07 Сентябрь 2009, 15:15:07
Есть вид. В нем 2000 документов. Бегу по всем документам и сравниваю их друг с другом. Получается проверка порядка 4.000.000 документов.
Как можно оптимизировать данный процесс?

Например, как-то добавить в коллекцию всё что есть во вьюхе (я не знаю, как это делать без getdocumentbykey в видах), и правильно удалять их из коллекции после прохождения.

В принципе, вопрос сводится к "как взять все док-ты из вьюхи при помощи ЛС без ключей"... В виде 1 столбец, краткое название организации.

И вообще, что быстрее: гетFirstDocument из неиндексированной вьюхи, или из коллекции?
Название: Re: Давайте представим цикл в цикле.
Отправлено: ViV от 07 Сентябрь 2009, 15:30:10
Можно поподробнее что нужно сделать?
Название: Re: Давайте представим цикл в цикле.
Отправлено: Sergey_st85 от 07 Сентябрь 2009, 15:41:47
Есть ОДИН вид. С ним и работаем.

беру КАЖДЫЙ документ в виде. И сравниваю со ВСЕМИ остальными. Как ускорить процесс в плане цикл побыстрее чтобы работал?

Я не знаю тайминга выполнения ф-ций; может из коллекции док-тов документ берется в 5 раз быстрее, чем из вьюхи.
Название: Re: Давайте представим цикл в цикле.
Отправлено: ViV от 07 Сентябрь 2009, 15:47:30
Это уже описано в первом сообщении темы.
Я спрашивал про другое: для чего нужны эти переборки. Скорее всего можно решить задачу не проводя подобные сравнения. Для этого и прошу обширнее описать проблему.
Название: Re: Давайте представим цикл в цикле.
Отправлено: Sergey_st85 от 07 Сентябрь 2009, 15:50:56
Код не могу скопировать, но суть такая. Взять имя краткой организации и полной. Исключить из них спец-символы: ООО, ОАО, пробелы, запятые, дефисы и т.д. И сравнивать с другими док-тами, исключая спецсимволы по такому же алгоритму.

+ ещё слова местами меняются для сравнения. ООО Россия два --- это дубль Россия ООО Два.
Название: Re: Давайте представим цикл в цикле.
Отправлено: ViV от 07 Сентябрь 2009, 16:04:07
а результатом что должно быть? отчет по организациям, или что-то еще? т.е. для чего сравнения производятся?
Название: Re: Давайте представим цикл в цикле.
Отправлено: Sergey_st85 от 07 Сентябрь 2009, 16:05:28
Просто для CSV-шного отчета, о дублях организаций.
Название: Re: Давайте представим цикл в цикле.
Отправлено: ViV от 07 Сентябрь 2009, 16:23:41
А если в документы прописать поле с названием организации без спец.символов и др., в нижнем регистре, например. Затем в виде категоризировать по этому полю. В каждой категории будут содержаться дубли.
Название: Re: Давайте представим цикл в цикле.
Отправлено: Sergey_st85 от 07 Сентябрь 2009, 17:22:33
Тогда "Россия Москва" и "Москва Россия" будут в разных категориях, а это по сути дубль. ПРоблема решена, я просто для агента на сервере отвел лишний час доступного времени.