Запрос Для Ftsearch

  • Автор темы Автор темы ezhov
  • Дата начала Дата начала
continue;

и итерирование коллекции не происходит
к тому же - в java надо делать recycle неиспользуемым объектам нотуса (это для избежания мемориликов)

Вы имеете ввиду так как чуть выхе предлагали сделать ?:

<!--shcode--><pre><code class='java'>private lotus.domino.Document findByDepID1(String depID) throws NotesException, IOException {

if(depID==null || depID.equals("")){
log("findByDepID1: depID is Nothing or Empty");
return null;
}

if(view1==null){
log("findByDepID1: view1 is Nothing");
return null;
}

log("findByDepID1: depID = " + depID);

DocumentCollection dc = view1.getAllDocumentsByKey(depID);

if(dc.getCount()==0) {
log("findByDepID1: Collection <dc> by key depID is empty !");
dc.recycle;
return null;
}
boolean isMoreThanOne = false;
lotus.domino.Document tmpdoc = null;
lotus.domino.Document doc = dc.getFirstDocument();

while (doc!=null) {
if (!doc.isDeleted()) {
if (tmpdoc==null){
tmpdoc = doc;
}else{
isMoreThanOne = false;
break;
}
}
doc = dc.getNextDocument(doc);
}

if (isMoreThanOne) {
if (tmpdoc!=null) tmpdoc.recycle;
if (doc!=null) doc.recycle;
if (dc!=null) dc.recycle;
log("findByDepID1: There are more than one departament in DB with id = " + depID);
throw new RuntimeException("Error. There are more than one departament in DB with id = " + depID);
}else{
if (tmpdoc==null){
if (doc!=null) doc.recycle;
if (dc!=null) dc.recycle;
log("findByDepID1: There is no available(not conflict) doc with id = " + depID);
return null;
}else{
if (dc!=null) dc.recycle;
return tmpdoc;
}
}
}[/CODE]
 
Именно по этой причине я предложил этот вариант, теперь Вам необходимо переделать метод findByTabNum1 по аналогии с findByDepID
 
ezhov

Пример рабочих классов-итераторов здесь.

P.S. Если дискуссия по Java, то лучше бы её вести в профильном разделе.
 
VladSh
не, тут вопрос был ухода от FTSearch на более быстрое решение.
 
Есть два дока с полями поле1 = "123" и поле1 = "123-45"
Вопрос, как сделать запрос FTSearch, чтобы находить только документ с поле1 = "123" ?
formula = {Field поле1= "123"} находит оба документа.
ищу
FTSearch(formula,0)
 
возможно стоит разобраться с доп. параметрами в методе .FTSearch? :)
 
  • Нравится
Реакции: seoman2
FTSearch(formula,0,FT_SCORES,FT_STEMS) не работает. Выдает последним в коллекции самое точное вхождение, а точнее, не заметил зависимости.
 
Последнее редактирование:
Есть два дока с полями поле1 = "123" и поле1 = "123-45"
Вопрос, как сделать запрос FTSearch, чтобы находить только документ с поле1 = "123" ?
formula = {Field поле1= "123"} находит оба документа.
ищу
FTSearch(formula,0)
formula = {Field поле1= """123"""} ?
 
Мы в соцсетях:

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