Может кто-нибудь помочь мне с исключением произошел вызов метода NotesDatabase.FTSearch (строка) - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь выполнить полнотекстовый поиск в базе данных и пытаюсь заставить его работать. Поскольку я работаю с полями даты, я удалил свой полнотекстовый индекс, установил для всех своих пустых полей даты фиктивную дату (15.03.2050), сжал БД и затем перестроил полнотекстовый индекс.

Однако, я все еще получаю ошибку для этой строки запроса: (Форма поля содержит «Opp») И (Тема поля содержит «A») И (FIELD DateTeam> = 3/1/2019) И (Поле FIELD DateTeam <= 3/31/2019) </p>

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

Чего мне не хватает? Мой клиент расстроен.

Ответы [ 4 ]

1 голос
/ 06 мая 2019

Вы не опубликовали словоблудие в исключении и не сказали, какую версию Domino вы использовали, так что это несколько догадка.

Это может быть , что таблица UNK (Domino'sвнутренний каталог полей) считает, что поле является строковым полем.Первое значение, хранящееся в поле, - это тип, который индекс FT использует для определения индексированного типа данных.Конечно, любой тип может быть сохранен в данных NSF, но код FT пытается ограничить этот тип поиска полями, которые, по его мнению, будут работать.

Теперь, если эти значения CONTAINS на самом деле = значения, то DQL может помочь вам,Мы будем помещать CONTAINS как глагол в DQL в V11, но он (DQL), безусловно, может выполнить ваш термин диапазона дат.Просто мысль.

-Джон Кертис

0 голосов
/ 07 мая 2019

Подход, который я использовал, был верным.Проблема, однако, заключалась в том, что мой агент обновления для установки всех полей даты содержал опечатку, поэтому он не устанавливал правильные имена полей для дат.Мой недосмотр.Как только я нашел это и исправил, я повторил свои шаги, и теперь все работает, как задумано.Спасибо всем за помощь в поиске решения.

Для всех остальных я предпринял следующие шаги: Откройте свойства базы данных и удалите полнотекстовый индекс. Запустите эту команду на консоли, чтобы сжать db: lo compact folder / db.nsf -c. Запустить агент для всехдокументы для установки в полях даты фиктивной даты. Снова откройте свойства базы данных и создайте новый полнотекстовый индекс. После завершения выполните следующую команду на консоли: load Updall -f folder / db.nsf Еще раз запустите агент, чтобы сбросить фиктивные даты взаготовки

0 голосов
/ 06 мая 2019

Я попробовал это в моей почтовой базе:

(FIELD Form CONTAINS "Memo") AND (FIELD Subject CONTAINS "the") AND (FIELD PostedDate >= 3/1/2019) AND (FIELD PostedDate <= 30/6/2019)

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

0 голосов
/ 06 мая 2019

Это может помочь: https://www -10.lotus.com / ldd / dominowiki.nsf / dx / full-text-syntax Насколько я знаю, значения даты должны быть в [] доРабота.Хорошим началом будет тестирование вашей формулы в клиенте с помощью функции поиска FT вместо изменения кода.

Кстати: вы можете сократить свою формулу, пропустив ключевое слово FIELD и введя имя поля также в [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...