ОБСУЖДЕНИЕ

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

21 ответов 11,6 тыс.
AI-выжимка обсуждения скоро
Всем привет.

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

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 содержит несколько документов

Что может быть не так?
 
если имя формы FormName, то нужно писатьc одними кавычками
Код:
s_form = {@Contains(Form;"FormName")}
 
А с какой ошибкой вываливается?
Или молча?
 
С правами как дела?

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

А с какой ошибкой вываливается?
Или молча?

Агент запускается в скртый фрейм, в нём написано Agent done ... больше ничего
 
KLif
А гиде эта строчка в вышеприведённом примере?
Сразу следующая за процитированым куском?

А базы ft-приндексированы?
Я ft поиск вообще не юзаю, но может в вебе он отваливаеться от отсутсвия ft-индекса?
 
KLif
А гиде эта строчка в вышеприведённом примере?
Сразу следующая за процитированым куском?

Код:
Call coll.FTSearch(s_search,0)
Print str(coll.Count)
если её запихать выше FTSearch, то принт всегда сработает и выдаст колличество доков которые найдены по форме...

Я не уверен в индексации каждой БД, но если действительно в вебе из за этого может падать, то шас погляжу ...
 
странно ... у меня ни одна база не проиндексированна, и при этом на некоторых работает ftsearch ... или я как то не правильно думаю ...
Индексы создаются налету. Наверное, свободной памяти везде разное количество.
 
А можно создать поиск такого вида : (форма = имя) и (где в доке встречается "строка"), не используя FTSearch?
 
А можно создать поиск такого вида : (форма = имя) и (где в доке встречается "строка"), не используя FTSearch?

Если строка не в поле, то нет.
Альтернатива FTSearchу - notesDatabase.Search - иногда лучше его использовать... особенно если в строке поиска используются спецсимволы - FTSearch с ними очень плохо дружит...
 
Imho, db.Search - для чёткого поиска
А FTSearch - пойди туда, не знаю куда, найди то, не знаю что.
Юзерориентированая штука...
 
Вот мне как раз и надо найти доки по введённой строке и она может быть в любом поле ... Search не решение ... да уж, как то туго всё
 
Поставь ограничение. Например, 500 документов.
 

Статистика тем

Создано
KLif,
Последний ответ от
KLif,
Ответы
21
Просмотры
11 617