Проблема с поиском с @contains

seoman2

Lotus team
17.02.2010
458
1
#1
В базе есть часть документов с полем СОДЕРЖАНИЕ или с полем СОДЕРЖАНИЕ_

Делаю свой поиск, чтобы искать текст из sСОДЕРЖАНИЕ сразу по обим полям.

formula$ = formula$+{@Contains(@LowerCase(СОДЕРЖАНИЕ):mad:LowerCase(СОДЕРЖАНИЕ_); @LowerCase("} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"))}

Set dc = db.Search(formula$,Nothing,0)

Результат 0 доков.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#2
сделай предварительно
print formula$
чтобы увидеть что ты в итоге получил :)
 

Anatoly

Lotus team
30.03.2007
222
0
#4
formula$ = formula$+{@Contains(@LowerCase(СОДЕРЖАНИЕ):mad:LowerCase(СОДЕРЖАНИЕ_); @LowerCase("} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"))}
Если formula$ - корректное логическое выражение и не содержит в конце логического оператора "&", то вряд-ли его конкатенация с чем либо вернет корректное логическое выражение


Добавлено:
надеюсь, поле СОДЕРЖАНИЕ и поле СОДЕРЖАНИЕ_ не рт?
Это было-бы круто... :)
 

Kizarek86

Lotus team
20.07.2007
864
4
#10
Ну так вроде @Text работает на RT поля.

Попробуйте так:

Код:
formula$ = formula$+{@Contains(@LowerCase(@text(СОДЕРЖАНИЕ)):@LowerCase(@text(СОДЕРЖАНИЕ_)); @LowerCase("} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"))}
 

seoman2

Lotus team
17.02.2010
458
1
#13
formula$ = formula$+{@Contains(@LowerCase(СОДЕРЖАНИЕ):mad:LowerCase(СОДЕРЖАНИЕ_); @LowerCase("} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"))}
Set dc = db.AllDocuments
Call dc.FTSearch(formula$,0)

Итог:
Query is not understandable

А
formula$ = formula$+{@Contains(@LowerCase(@text(СОДЕРЖАНИЕ)):mad:LowerCase(@text(СОДЕРЖАНИЕ_)); @LowerCase("} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"))}

возвращает пустую коллекцию.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#14
Ну дык синтаксис-то другой. Смотри в хелпе. Что-то типа:
formula$ = {[СОДЕРЖАНИЕ] = } + uidoc.FieldGetText("sСОДЕРЖАНИЕ") + { OR } + {[СОДЕРЖАНИЕ_] = } + uidoc.FieldGetText("sСОДЕРЖАНИЕ")

Если ищешь по всем документам, то нет смысла получать коллекцию всех документов. Ищи сразу по базе.
Call db.FTSearch(formula$, 0)
 

phantom76

Lotus team
25.02.2005
360
4
#19
я эту задачу решал в свое время через утяжеление доков, предварительный агент на сервере вытягивал тест из rt и генерил текстовые поля с содержанием, а затем уже юзер работал через поисковую форму. Документы утяжелялись, зато даже в представлении можно было показать, то что хотел юзер.
 
Y

Yakov

#20
я эту задачу решал в свое время через утяжеление доков, предварительный агент на сервере вытягивал тест из rt и генерил текстовые поля с содержанием, а затем уже юзер работал через поисковую форму. Документы утяжелялись, зато даже в представлении можно было показать, то что хотел юзер.
С проблемой 32k на Summary поля не сталкивались?