ОБСУЖДЕНИЕ

проблемка с Notesdatabase.ftsearch

21 ответов 9,4 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
При реализации поиска для одной базки, наткнулся на одну проблемку. Не работает поиск по диапазону дат в который1 попадает значение одного поля типа "дата". FTSearch воспринимает поле как текстовое и не дает использовать операции сравнения “>”, “<”, “<=” и “>=”.

Прибить индекс и создать его заново не помогает. Может, уже кто-то сталкивался с подобной проблемой и знает, как легко её обойти…

Я знаю один способ, но мне он не очень подходит... грубо говоря не подходит совсем...
 
Уси-пуси :). Как бальзам на душу!:D Проблемки у конкурентов! Мелочь, а приятно! :P

Удостоверся что нигде в формах нету поля с таким же именем, но текстовым. А вдруг?

P.S. и выдай текст запроса который ты пытаешься впихануть.
 
Мишань, проблема именно в том, что пока поле пустое - оно текстовое... а када индекс формируется первый раз, он же ж не смотрит все документы.. он нашел первый попавшийся, посмотрел, шо поле текстовое (пустое патамуша) и зафигачил в свою таблицу тот факт, шо оно текстовое... А как эту заразу переубедить - ХЗ... Есть способ - создать реплику и индекс для неё, авось в ней полу будет уже датой... А потом подменить базку репликой - но способ настока брутальный, шо даже не хочу это делать... Ищу способы покрасивей.. А ты, вместо того, шоб радоватся проблемкой у конкурентов (кстати не у них проблемка.. а у меня :)) - помог бы коллеге...

запрос до безобразия простой...

( [Form]= "Form1") & ([Date1] >= 27.09.2007) & ([Date1] <= 28.09.2007)
 
<!--QuoteBegin-Sandr+6:11:2007, 13:43 -->
<span class="vbquote">(Sandr @ 6:11:2007, 13:43 )</span><!--QuoteEBegin-->(пустое патамуша)
[snapback]84413" rel="nofollow" target="_blank[/snapback]​
[/quote]
па рукам за такое )
 
за какое? Так а шо делать, если оно и должно быть пустым, пока его не завполнят... Оно не обязательно на определенных стадиях...
 
Заполнять @now али @today. И флажок рядышком завести. Флажок взведён - значит на дату нада обращать внимание, флажок опущен - значит на дату забить.
 
Клиент, к сожалению, не поймет причины такого неудобства в интерфейсе...
 
Значит далать второ поле которое будет отобрадаться - а то по которому будт искать - будет скрытым и т.д.
 
Если бы база писалась с нуля, то так и сделал бы.. но ведь она уже существует... :)
 
Для: Sandr
а что шаблонов нима?
 
Причем тут шаблоны? Предлагаете создать новую БД? База уже в работе, коиент пользуется - как исправить?
 
Зачем создавать новую БД ... разве у Вас шаблонов по которм создавались БД не осталося?
прописать просто поле которое надо для поиска -скрытым(Поле1) , а новое поле зделать видимым(Поле2)

Поле 1 = если поле1 и поле2 пусто будет принимать значение 1900/01/01.
ну соответсвено поле2 = пусто( если поле1 - 1900/01/01 ), либо равно поле1

ну чтото в этом роде
 
Да поймите, не в этом проблема, а проблема в том, что в существующей базе этим проблему не решишь... Проблема возникла при ПЕРВОМ создании индекса... Поменять поля - это тоже самое, что махать кулаками после боя...

ЗЫ: По-вашему, я что, не в состоянии поля сделать? :)
 
ну тады звыняйте, о любые пустые поля будут восприниматься как текстовые пустышки

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

Ну что толку от этого всего? Как это повлияет на определения типа поля в индексе? Он ведь определяется при ПЕРВОМ построении индекса... Даже если прибить все, индекс и все документы в БД, а потом создать один документ с заполенным полем даты и заново создать индекс - проблема останется... :D

Единственный выход - создать реплику существующей базы, проследить корректность заполенныз полей в ней, создать индекс и подменить базу этой репликой...
 
Это вы ничего не поняли.

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

Если в вашей базе данное поле ТОЛЬКО датовского типа ЛИБО пустое, то агентик поможет, поиск будет работать.
 
Для: Sandr
После отработки агента индекс пересоздать...
Или база недосягаема? Тогда как вообще о каких-то изменениях говорить? =\
 
Это вы ничего не поняли.

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

Если в вашей базе данное поле ТОЛЬКО датовского типа ЛИБО пустое, то агентик поможет, поиск будет работать.

Ну что толку? База не кривая.. все поля типа Дата или пустые. Тип поля в индексе определен как текст, а определяется он при ПЕРВОМ создании индекса... Он криво создался в первый раз - все его не переубедить, что поле не текстовое... Прибить индек и создать его заново - результата не дает... Я же говорил это выше... Помогает тока если создать реплику, создать в ней индекс, а птом подсунуть реплику вместо базы...
 
Статус
Закрыто для дальнейших ответов.

Статистика тем

Создано
Sandr,
Последний ответ от
Sandr,
Ответы
21
Просмотры
9 393