Непрерывная индексация полнотекстового поиска - возможно ли это?
Найденные решения
Насколько мне известно, в 1С реализован собственный движок полнотекстового поиска. Подробности его внутренней реализации и на базе чего он сделан - неизвестно. Известно только, что никакой связи с движками ПП в СУБД и веб-серверах он не имеет. Как и возможностей обновления он-лайн.
Насколько я понимаю, это не недоработка. Это как раз своего рода оптимизация. Т.е. пакетное обновление при массовых изменениях будет работать значительно быстрее, чем по каждому чиху.
Насколько я понимаю, это не недоработка. Это как раз своего рода оптимизация. Т.е. пакетное обновление при массовых изменениях будет работать значительно быстрее, чем по каждому чиху.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Спасибо за быстрый ответ!
(2)
А штатной возможности индексатора нет? Чую, тут торчат уши IIS, думаю, что нужно копать здесь, но не знаю :( в каком СЕЙЧАС это состоянии. Мне помнится, что, когда это только появилось, тексты в таблицах MS SQL индексировались сразу, но настаивать не буду. Также возможно, что потом эту фишку убрали.
По соображениям перфекционизма. Я считаю, что раз используется слово "индекс", то он должен обновляться синхронно со своими данными. А иначе получается как в одном поделии - таблица переиндексируется КАЖДЫЙ раз при изменении данных. Зрелище ещё то.
К тому же начальство недовольно, что только что введённые данные не отображаются в поиске.
Да у всех оно запущено, но это костыль, а я хочу "как в лучших домах". ;)))
(2)
Обработчиком событий, но я думаю это будет чрезвычайно тормозно.
А штатной возможности индексатора нет? Чую, тут торчат уши IIS, думаю, что нужно копать здесь, но не знаю :( в каком СЕЙЧАС это состоянии. Мне помнится, что, когда это только появилось, тексты в таблицах MS SQL индексировались сразу, но настаивать не буду. Также возможно, что потом эту фишку убрали.
Интересно зачем?
По соображениям перфекционизма. Я считаю, что раз используется слово "индекс", то он должен обновляться синхронно со своими данными. А иначе получается как в одном поделии - таблица переиндексируется КАЖДЫЙ раз при изменении данных. Зрелище ещё то.
К тому же начальство недовольно, что только что введённые данные не отображаются в поиске.
У меня обновление индекса запущено регламентным на раз в 10 минут
Да у всех оно запущено, но это костыль, а я хочу "как в лучших домах". ;)))
(5)
Не, не средствами SQL, хотя вроде бы там тоже что-то было, а средствами связки IIS+MS SQL. Во всяком случае раньше, во времена MS SQL 6.5...2000 в состав современному ему IIS входил индексатор, который позволял индексировать не только разные форматы файлов, но и поля SQL-таблиц тоже. Там были plug in'ы (которые, назывались, правда, по-другому) для разных форматов файлов, был и для SQL. Возможно, это plug in шёл не с IIS, а с самим MS SQL. Но главное, что MS SQL имел доступ к данным индексатора. Сам разбирал пример, где индексатор интегрировался с MS SQL в обе стороны.
Во что это превратилось сейчас - я не в курсе.
Возможно, что 1С использует свой индексатор, но подозреваю, что это всё равно что-то Микрософтовское. Другое дело, что по соображениям лицензирования функционал индексатора может быть урезан и вследствие этого синхронная индексация может быть невозможна в принципе.
Не, не средствами SQL, хотя вроде бы там тоже что-то было, а средствами связки IIS+MS SQL. Во всяком случае раньше, во времена MS SQL 6.5...2000 в состав современному ему IIS входил индексатор, который позволял индексировать не только разные форматы файлов, но и поля SQL-таблиц тоже. Там были plug in'ы (которые, назывались, правда, по-другому) для разных форматов файлов, был и для SQL. Возможно, это plug in шёл не с IIS, а с самим MS SQL. Но главное, что MS SQL имел доступ к данным индексатора. Сам разбирал пример, где индексатор интегрировался с MS SQL в обе стороны.
Во что это превратилось сейчас - я не в курсе.
Возможно, что 1С использует свой индексатор, но подозреваю, что это всё равно что-то Микрософтовское. Другое дело, что по соображениям лицензирования функционал индексатора может быть урезан и вследствие этого синхронная индексация может быть невозможна в принципе.
Насколько мне известно, в 1С реализован собственный движок полнотекстового поиска. Подробности его внутренней реализации и на базе чего он сделан - неизвестно. Известно только, что никакой связи с движками ПП в СУБД и веб-серверах он не имеет. Как и возможностей обновления он-лайн.
Насколько я понимаю, это не недоработка. Это как раз своего рода оптимизация. Т.е. пакетное обновление при массовых изменениях будет работать значительно быстрее, чем по каждому чиху.
Насколько я понимаю, это не недоработка. Это как раз своего рода оптимизация. Т.е. пакетное обновление при массовых изменениях будет работать значительно быстрее, чем по каждому чиху.
(10) А тебя и не лишили. Можно сделать, например, так:
1) в подписках на запись объектов добавлять в спец-табличку (справочник/регистр) запись с временем изменения (добавлять - чтобы минимизировать блокировки) и выполнять запуск фонового задания обновления индекса (с исключением параллельного выполнения нескольких заданий)
2) в фоновом задании фиксировать время начала выполнения и после обновления индекса удалять все записи из спец-регистра с временем, меньшим либо равным времени старта обновления. После этого проверять, остались ли записи в регистре. Если остались (успели новые изменения накопиться) - все опять по-новой.
Т.е. в худшем случае индекс будет обновляться непрерывно. Но как только изменения данных прекратятся, прекратятся и обновления индекса - до следующего изменения данных.
1) в подписках на запись объектов добавлять в спец-табличку (справочник/регистр) запись с временем изменения (добавлять - чтобы минимизировать блокировки) и выполнять запуск фонового задания обновления индекса (с исключением параллельного выполнения нескольких заданий)
2) в фоновом задании фиксировать время начала выполнения и после обновления индекса удалять все записи из спец-регистра с временем, меньшим либо равным времени старта обновления. После этого проверять, остались ли записи в регистре. Если остались (успели новые изменения накопиться) - все опять по-новой.
Т.е. в худшем случае индекс будет обновляться непрерывно. Но как только изменения данных прекратятся, прекратятся и обновления индекса - до следующего изменения данных.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот