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

T

TIA

NotesDatabase.Search ищет только по SUMMARY полям. RT-поля таковыми по-умолчанию не являются. Не SUMMARY поля для поисковой формулы получают пустое значение. Но у не больших, до 64кб, полей можно скриптом установить флаг SUMMARY, тогда и @Abstract должен сработать.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Но у не больших, до 64кб, полей можно скриптом установить флаг SUMMARY, тогда и @Abstract должен сработать.
в корне не верно, если все SUMMARY поля превышат 64K - а это таким подходом будет наверняка вы рискуете больше никогда такие документы не открыть :facepalm:

юзать FTSearch и не морочить голову
 
T

TIA

>в корне не верно, если все SUMMARY поля превышат 64K - а это таким подходом будет наверняка вы рискуете больше никогда такие документы не открыть
Об этом я в курсе и это не противоречит тому, что я написал, а написал всё правильно. В SandBox есть пример когда картинка помещается в RT-поле, у поля устанавливается SUMMARY и эта картинка отображается во вьюхе :facepalm:
 
C

Caspiy

юзать FTSearch и не морочить голову
Полностью согласен!!

даже если и удастся @Contains-ом сравнить РТ-поля, то в контесте db.Search (при большом кол-ве документов), будет отрабатывать невероятно долго!

однозначно FTSearch !!!
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
Не получается искать с
formula$ = formula$+{"field СОДЕРЖАНИЕ = } & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {""}
и так пробовал
formula$ = formula$+{"field СОДЕРЖАНИЕ = } & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"}
и
formula$ = formula$+{"[СОДЕРЖАНИЕ] = } & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"}
и
formula$ = formula$+{"СОДЕРЖАНИЕ = } & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"}

далее

Set dc = db.AllDocuments
Call dc.FTSearch(formula$,0)

возвращает пустой результат....
 
T

TIA

Остался вариант
formula = formula & {[СОДЕРЖАНИЕ] = } & uidoc.FieldGetText("sСОДЕРЖАНИЕ")
или
formula = formula & {[СОДЕРЖАНИЕ] = "} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"}
 
T

TIA

>Ставлю на этот!!!!
Оба работают. Второй вариант, что в кавычках,ищет точное совпадение, без учёта вариантов написания фразы
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
Перешел на FTSearch

И что интересно,
formula$ = formula$+{@Contains(АДРЕСАТ; "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
В паре с
Set dc=db.Search(formula$,Nothing,0)
дает в результатах документы, а

formula$ = formula$+{[АДРЕСАТ]=} & uidoc.FieldGetText("sАДРЕСАТ")
в паре с
Set dc = db.AllDocuments
Call dc.FTSearch(formula$,0)
возвращает пустой результат.

В чем может быть причина?
 
N

nvyush

Может надо formula$ = formula$+{[АДРЕСАТ]="} & uidoc.FieldGetText("sАДРЕСАТ") & {"}?
К тому же @Contains ищет вхождения, а = — точное совпадение.
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
formula$ = formula$+{[АДРЕСАТ]="} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
Такой синтаксис недопустим, выдает ошибку.

И еще, как правильно написать [АДРЕСАТ] не пустое? <> "" , !="", NOT NULL - не работает.
 
T

TIA

>И что интересно,
>formula$ = formula$+{@Contains(АДРЕСАТ; "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
>В паре с
>Set dc=db.Search(formula$,Nothing,0)

seoman2 , вы путаете синтаксис полнотекстового и @-формульного запроса.
В FT-запросе нет @Contains. Надо писать
formula$ = formula$+{(АДРЕСАТ Contains "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
 
N

nvyush

И еще, как правильно написать [АДРЕСАТ] не пустое? <> "" , !="", NOT NULL - не работает.
[АДРЕСАТ] IS PRESENT
Посмотрите советы по поиску в справке клиента, раздел "Уточнение поискового запроса с помощью операторов" и рядом.
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
formula$ = formula$+{[АДРЕСАТ] Contains } & uidoc.FieldGetText("sАДРЕСАТ")
formula$ = formula$+{[АДРЕСАТ] Contains "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
не работает.

[АДРЕСАТ] IS PRESENT
работает! Спасибо!

Вот нашел .
 
T

TIA

>formula$ = formula$+{[АДРЕСАТ] Contains "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
>не работает.
Есть закрывающая скобка. Нет открывающей. Проверяйте корректность вычисляемых поисковых формул. Получите вычисленную формулу и запустите её в представлении.
 
N

nvyush

formula$ = formula$+{[АДРЕСАТ] Contains } & uidoc.FieldGetText("sАДРЕСАТ")
formula$ = formula$+{[АДРЕСАТ] Contains "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
не работает.
Может проблема в том, что поле [АДРЕСАТ] содержит имя в канонической форме, а uidoc.FieldGetText("sАДРЕСАТ") возвращает имя в сокращённой (abbreviated) форме?
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
FTSearch - ищет по базе или же по индексу базы?

TIA, спасибо!
 
Мы в соцсетях:

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