• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

seoman2

Green Team
17.02.2010
504
1
BIT
45
В базе есть часть документов с полем СОДЕРЖАНИЕ или с полем СОДЕРЖАНИЕ_

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

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

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

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
сделай предварительно
print formula$
чтобы увидеть что ты в итоге получил :)
 
A

Anatoly

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


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

Kizarek86

Green Team
20.07.2007
871
7
BIT
38
Ну так вроде @Text работает на RT поля.

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

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

seoman2

Green Team
17.02.2010
504
1
BIT
45
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

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

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Они в хелпе клиента.
Ищи Refining a search query using operators.
 
P

phantom76

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

Yakov

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

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