Поиск документов

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

KLif

#1
Всем привет.

Возникла проблема с поиском, попробую описать ситуацию

1. есть список баз, строка поиска ...

Сначало в коллекцию попадают доки опр формы, потом по коллекции идёт поиск уже по введённой строке
Код:
Dim Db As New NotesDatabase("server", "db")
s_form = "@Contains(Form;""FormName"")"
s_search = "string"
Set coll = Db.Search(s_form,Nothing,0)
Call coll.FTSearch(s_search,0)
(код агента)

Этот код работает для всего списка баз и в конце coll что то содержит ...

2. тот же список баз, только работа уже в вебе
Для некоторых баз всё отлично, и в конце есть какой то результат, для остальных агент прекращает работу на строчке Call coll.FTSearch(s_search,0), причём до этого он делает нормально выбор документов по форме + ко всему, поиск по тойже базе но не в вебе даёт нормальный результат и coll содержит несколько документов

Что может быть не так?
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#2
если имя формы FormName, то нужно писатьc одними кавычками
Код:
s_form = {@Contains(Form;"FormName")}
 

Omh

Lotus team
04.07.2007
2 210
1
#5
А с какой ошибкой вываливается?
Или молча?
 
K

KLif

#6
Полный доступ ... если агента запускать не в вебе, то для каждой бд из списка он сработает и в конечном итоге coll.Count я получу какое то значение ...
в вебе он не доходит то строчки Print str(coll.Count)

А с какой ошибкой вываливается?
Или молча?
Агент запускается в скртый фрейм, в нём написано Agent done ... больше ничего
 

Omh

Lotus team
04.07.2007
2 210
1
#7
KLif
А гиде эта строчка в вышеприведённом примере?
Сразу следующая за процитированым куском?

А базы ft-приндексированы?
Я ft поиск вообще не юзаю, но может в вебе он отваливаеться от отсутсвия ft-индекса?
 
K

KLif

#8
KLif
А гиде эта строчка в вышеприведённом примере?
Сразу следующая за процитированым куском?
Код:
Call coll.FTSearch(s_search,0)
Print str(coll.Count)
если её запихать выше FTSearch, то принт всегда сработает и выдаст колличество доков которые найдены по форме...

Я не уверен в индексации каждой БД, но если действительно в вебе из за этого может падать, то шас погляжу ...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#13
странно ... у меня ни одна база не проиндексированна, и при этом на некоторых работает ftsearch ... или я как то не правильно думаю ...
Индексы создаются налету. Наверное, свободной памяти везде разное количество.
 
K
#14
А можно создать поиск такого вида : (форма = имя) и (где в доке встречается "строка"), не используя FTSearch?
 
S

Sandr

#15
А можно создать поиск такого вида : (форма = имя) и (где в доке встречается "строка"), не используя FTSearch?
Если строка не в поле, то нет.
Альтернатива FTSearchу - notesDatabase.Search - иногда лучше его использовать... особенно если в строке поиска используются спецсимволы - FTSearch с ними очень плохо дружит...
 

Omh

Lotus team
04.07.2007
2 210
1
#16
Imho, db.Search - для чёткого поиска
А FTSearch - пойди туда, не знаю куда, найди то, не знаю что.
Юзерориентированая штука...
 
K
#17
Вот мне как раз и надо найти доки по введённой строке и она может быть в любом поле ... Search не решение ... да уж, как то туго всё