Поиск FT в панели просмотра

Я пытаюсь создать строку поиска, чтобы добавить свойство поиска панели просмотра. Мне нужно иметь возможность искать между двумя датами (от даты и до даты). Синтаксис, который работает, равен дате, например. (FIELD Form = "form") И (FIELD dateCompleted = 01.01.2012) работает нормально. Даты вводятся в 2 элемента управления вводом с помощью средства выбора даты или вводятся вручную. Если попытаться (FIELD Form ="Form") AND (FIELD dateCompleted => 01/01/2012) AND (FIELD dateCompleted ‹= 31/01/2012) выполнить поиск между двумя датами, я получаю сообщение об ошибке или поисковый возврат документы не найдены. Есть документы (dateCompleted — это поле даты/времени), поэтому должны возвращаться документы. Любая идея, каким должен быть правильный синтаксис?


person Community    schedule 29.03.2012    source источник
comment
пожалуйста, предоставьте точную ошибку, которую вы получаете.   -  person Frantisek Kossuth    schedule 31.03.2012


Ответы (3)


Попробуй это:

(FIELD Form ="form") AND ((FIELD dateCompleted => 01/01/2012) AND (FIELD dateCompleted <= 31/01/2012))
person Ferry Kranenburg    schedule 29.03.2012
comment
Вы можете использовать квадратные скобки вокруг поля вместо ввода поля - person Thomas Adrian; 30.03.2012
comment
например [dateCompleted] ‹= 31/01/2012 или dateCompleted ‹= [31/01/2012]? - person ; 30.03.2012

С датами и числами иногда могут возникнуть проблемы с FT - в любом случае это полный "ТЕКСТ". В вашем случае попробуйте переключить месяц и день - 31.01.2012 - это может быть очень чувствительно в зависимости от различных настроек на уровне ОС и Domino.

person Frantisek Kossuth    schedule 29.03.2012
comment
База данных проиндексирована с полным текстом, и я удостоверяюсь, что индекс ft обновлен, когда пытаюсь выполнить поиск. - person ; 30.03.2012
comment
База данных проиндексирована с полным текстом, и я удостоверяюсь, что индекс ft актуален, когда пытаюсь выполнить поиск. Я заметил, что дата, которую я ввожу в текстовое поле ввода и сохраняю ее как дату/время в документе, работает нормально, но я добавил поле dateCompleted через - person ; 30.03.2012

Ваш синтаксис выглядит нормально (хотя =>, вероятно, должно быть >= ). Проблема с невозможностью поиска между датами может быть вызвана неправильным типом данных для поля dateCompleted в таблице UNK базы данных. В таблице UNK перечислены все поля в базе данных и их типы данных, и она используется при поиске FT. Если поле не определено как поле даты, полнотекстовый поиск «между датами» работать не будет. Насколько я знаю, первое вхождение поля создает запись в таблице UNK: поэтому, если это пустое поле, оно будет думать, что это текстовое поле.

Дополнительную информацию о таблице UNK можно прочитать здесь. IBM также предлагает инструмент для просмотра таблицы UNK. Таблица UNK воссоздается, если вы используете команду compact -c для базы данных.

person Mark Leusink    schedule 30.03.2012
comment
Отметьте, что [too][1] не работает. В свойствах документа он отображается как поле «Дата/время». Он был создан LotusScript с использованием doc.dateCompeted = Today. переоценка таблицы UNK. Когда вы говорите, что если поле пусто, вы имеете в виду, что если есть 10 документов, и в одном из этих документов поле dateCompleted пустое, то в UNK оно будет рассматриваться как текстовое поле, а не как поле даты/времени. Я думаю, что поле изначально было определено как текстовое поле, которое я изменил на дату/время в форме. Информация о таблице UNK для меня новая, отправьте мне ссылку, где я могу найти больше - person ; 31.03.2012
comment
Я обновил ссылки. Первое вхождение поля определяет тип данных поля в таблице UNK. Если ваше поле сначала было текстовым полем, оно, вероятно, будет указано как текстовое поле в таблице UNK. - person Mark Leusink; 02.04.2012