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

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

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

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

Ftsearch И Список Дат

leiba

Well-known member
18.06.2010
49
0
BIT
3
В БД есть документы со списковым полем типа DateTime.
Если искать в базе с помощью db.Search, то можно отобрать все документы, содержащие в этом поле хотя бы одну дату это года:
Date_Doc >= [01.01.2012]
Возможно ли бы сделать аналогичное с помощью db.FTSearch? Запрос вида:
[Date_Doc] >= 01.01.2012
возвращает только документы, где в списке одно значение.

Буду благодарен за совет.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
55
leiba
1. Попробовать увеличить таймаут?
2. Перепроектировать приложение, чтобы в одном поле писать одну дату?
 

leiba

Well-known member
18.06.2010
49
0
BIT
3
leiba
1. Попробовать увеличить таймаут?
2. Перепроектировать приложение, чтобы в одном поле писать одну дату?
1. База 1 млн. документов. Оценить, какой нужен таймаут и что делать при дальнейшем росте, сложно. В общем не наш метод.
2. Глобально да! Но, затратно - много на структуру приложения завязано.
Не вдаваясь в описание данной базы скажу, что все даты в этом поле лежат в диапазоне от даты создания документа до даты модификации его. Соответственно решил использовать [_RevisionDate] и [_CreationDate]. Далее перебором. Всё одно быстрее Search получается (двойное обращение с FTSearchRange за полминуты успевает, а с Search минут 10).

Добавлено:
А вот так нельзя?
[Date_Doc] *>= 01.01.2012
---------------------------
IBM Lotus Notes
---------------------------
Query is not understandable
---------------------------
ОК
---------------------------
 
N

nvyush

Если я правильно понял, документы обрабатываются серверным агентом по расписанию. Может просто брать документы из представления, которому соответствующим образом настраивать формулу отбора?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
Ну да, глупость написал... Такие схемы нельзя использовать при FT.
В описании FT не говорится про множественные поля с датами, только про поле с одним значением.
И нашел немецкую переписку, где сказано, что FT не работает по множественным полям, в частности "дата".

Только если как-то объединять значения.

Добавлено: А если сделать FTSearch не по базе, а по вьюхе? NotesView.FTSearch?
А во вьюхе сделать формулу отбора как вам надо.
Вариант не очень, но может сработать.
 
Мы в соцсетях:

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