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

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

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

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

однозначно FTSearch !!!
 
Не получается искать с
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)

возвращает пустой результат....
 
Остался вариант
formula = formula & {[СОДЕРЖАНИЕ] = } & uidoc.FieldGetText("sСОДЕРЖАНИЕ")
или
formula = formula & {[СОДЕРЖАНИЕ] = "} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"}
 
>Ставлю на этот!!!!
Оба работают. Второй вариант, что в кавычках,ищет точное совпадение, без учёта вариантов написания фразы
 
Перешел на 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)
возвращает пустой результат.

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

И еще, как правильно написать [АДРЕСАТ] не пустое? <> "" , !="", NOT NULL - не работает.
 
>И что интересно,
>formula$ = formula$+{@Contains(АДРЕСАТ; "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
>В паре с
>Set dc=db.Search(formula$,Nothing,0)

seoman2 , вы путаете синтаксис полнотекстового и @-формульного запроса.
В FT-запросе нет @Contains. Надо писать
formula$ = formula$+{(АДРЕСАТ Contains "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
 
И еще, как правильно написать [АДРЕСАТ] не пустое? <> "" , !="", NOT NULL - не работает.
[АДРЕСАТ] IS PRESENT
Посмотрите советы по поиску в справке клиента, раздел "Уточнение поискового запроса с помощью операторов" и рядом.
 
formula$ = formula$+{[АДРЕСАТ] Contains } & uidoc.FieldGetText("sАДРЕСАТ")
formula$ = formula$+{[АДРЕСАТ] Contains "} & uidoc.FieldGetText("sАДРЕСАТ") & {")}
не работает.

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

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

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