gifts2017

[IFilter] Поиск в содержании файлов из 1С (ВК, .NET)

Опубликовал Василий Демидов (Душелов) в раздел Администрирование - Поиск данных

Компонента для работы с фильтрами поисковых систем.
  Получает текст из файла по установленном в системе фильтрам.
  Индексирует и ищет файлы по их содержанию (аналог Desktop Search)
  Поддерживает *.doc, *.xls, *.txt, *.ppt.
  Дополнительные фильтры можно скачать с http://www.ifilter.org/Links.htm

*** Для работы компоненты потребуется установленный Microsoft .NET Framework 2.0, который можно скачать отсюда.

Чтобы зарегистрировать компоненту в Windows - запустить reg.bat


*** Подключение:

Перем ВК;

ПОДКЛЮЧЕНИЕ КОМПОНЕНТЫ В 1С 7.7:

  ИмяВК="AddIn.IFilter";
 
  Попытка
      ПодключитьВнешнююКомпоненту(ИмяВК);
  Исключение
      Сообщить("Не удалось подключить компоненту "+ИмяВК);
  КонецПопытки;

  Попытка
      ВК = СоздатьОбъект(ИмяВК);
  Исключение
     Сообщить("Ошибка создания объекта внешней компоненты: "+ ИмяВК);
  КонецПопытки;

ПОДКЛЮЧЕНИЕ КОМПОНЕНТЫ В 1С 8.x:

  ИмяВК="AddIn.IFilter";
  
  Попытка
       ПодключитьВнешнююКомпоненту(ИмяВК);
  Исключение
      Сообщить("Не удалось подключить компоненту " + ИмяВК);
  КонецПопытки;
  
  Попытка
     ВК = Новый(ИмяВК);
  Исключение
      Сообщить("Ошибка создания объекта внешней компоненты: " + ИмяВК);
  КонецПопытки;

*** Свойства:

  - КаталогИндексов //каталог, где хранятся индексы файлов
  - Фильтр //*.txt,*.html и др.

*** Методы:

  - ОткрытьФайл(ПутьКФайлу); //возвращает текст файла или пустую строку, если такого фильтра нет в системе
  - Индексировать(Каталог); //возвращает строковое описания результата выполнения
  - Найти(ТекстПоиска); //булево
  - ОчиститьИндексы(); //возвращает строковое описание результата выполнения
  - КоличествоФайлов(); //количество найденных файлов
  - ПолучитьФайл(ИндексФайла); //возвращает объект типа "Файл"
  - ИнформацияОбИндексах(); //возвращает строковое описание

*** Объект "Файл":

  *** Свойства:
  - Имя //название файла
  - Каталог
  - Путь
  - Индекс //результат индексирования

Скачать файлы

Наименование Файл Версия Размер
- 126
.1237900701 129,94Kb
25.09.09
126
.1237900701 129,94Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Василий Демидов (Душелов) 24.03.09 16:24
Посмотрел я тут у одного автора справочную систему на всяких офисных файлах, html страничках... И стало интересно, а как устроить поиск по этим файлам, которые могут храниться, как в отдельной папке, так и в составе конфигурации... Ответ прост - использовать технологии индексирования поисковых машин с использованием фильтров IFilter.

Компонента позволяет выдернуть содержание файла (текст) и этот текст уже можно хранить в базе (или во внешних файлах) проиндексированным.

Есть платные фильтры, а есть и бесплатные (ссылка дана в описании):

Archive Files (like CAB, ZIP, RAR or self-extracting EXE)
CHM Compiled HTML files
CSF Content Sealed Format
DjVu
Email
HLP Help Files
Image Files (digital photos, JPEG, etc.)
MHT MIME Encapsulation of Aggregate HTML Documents
Palm Desktop
PDF
RTF
Office Suites (Microsoft, WordPerfect, StarOffice, OpenOffice)
Visio
2. Василий Демидов (Душелов) 24.03.09 16:47
При желании можно добавить систему индексирования и поиска, но это будет работать только при хранении данных в каталоге сети.
3. Сhe Burashka (CheBurator) 24.03.09 19:51
пока не въехал про практическую ценность
4. Василий Демидов (Душелов) 24.03.09 19:52
Индексировать не путь к файлам, а их содержания. Именно для поиска нужной информации (по ключевым словам) в содержании файлов разных форматов.

Как раз во всякой документации ворд-экзель-хтмлной.
5. Василий Демидов (Душелов) 24.03.09 20:04
т.е. в 8-ке, к примеру, делаем справочник "инструкции пользователей", в которых в двоичном виде хранится первоначальный файл (pdf, doc, xls и т.п.) и текстовое представление (которое получается с помощью компоненты при загрузке), а уже потом ищется нужная инструкция по полнотекстовому поиску... Это как один из вариантов использования.
6. Василий Демидов (Душелов) 24.03.09 20:27
7. Андрей Крутских (K_A_O) 25.03.09 08:34
Идея хорошая, но в 8.1 уже встроено: объект ИзвлечениеТекста()
coder1cv8; Serj1C; +2 Ответить 1
8. Василий Демидов (Душелов) 25.03.09 09:02
(7) Здорово, не знал, но для 7.7 подобного нет.
+ могу добавить свою систему индексирования и поиска.
9. Василий Демидов (Душелов) 25.03.09 16:38
Добавил индексирование каталогов и поиск файлов по их содержанию.
10. artem666 Bogomaz (artem666) 25.03.09 20:43
Тоже задумывался об поисках в таких подсистемах... Но твоя идея хорошая!
11. - - (dushegub) 17.04.09 02:48
попробуйте сделать обработку типа "Управление процессами вулканизации материальной составляющей династии и корпускуляции относительностей влажности атаки и квантованности в режиме эксцентрической тянущей бифилярности структуры"
;)

это почти тоже, что вы тут накрутили, успехов!
12. Олег Пономаренко (O-Planet) 17.04.09 02:59
dushegub - тень Душелова? Или коварная провокация на фоне недавних событий? ;)
13. ValentinV (ValentinV) 19.05.09 18:08
А кто-нибудь для 1с делал индексацию файловой системы?
14. Василий Демидов (Душелов) 19.05.09 20:47
(13) Для поиска файлов по названию?
15. ValentinV (ValentinV) 20.05.09 11:21
16. Василий Демидов (Душелов) 20.05.09 11:27
17. ValentinV (ValentinV) 20.05.09 11:30
Интересны алгоритмы и их реализация в 1с.
18. ValentinV (ValentinV) 20.05.09 13:22
Вы Windows наверное продаете?
Microsoft .NET Framework 2.0, требует лицензии.
Т.Е. демка получается платная.
19. Василий Демидов (Душелов) 20.05.09 13:24
(17) А зачем это делать в 1С?
(18) Кто требует лицензии? Где?
20. vip (vip) 20.05.09 13:27
(18) > Microsoft .NET Framework 2.0, требует лицензии.
Это откуда такие сведения?
21. ValentinV (ValentinV) 20.05.09 14:56
На втором шаге Microsoft .NET Framework 2.0 просит
Установщик Windows 3.0
http://www.microsoft.com/downloads/details.aspx?FamilyId=5FBC5470-B259-4733-A914-A956122E08E8&displaylang=ru
...
Этот загружаемый файл доступен пользователям, на компьютерах которых установлена подлинная ОС Microsoft Windows.
Для запуска проверки подлинности Windows нажмите кнопку
23. ValentinV (ValentinV) 20.05.09 15:42
Ну а тут :
1. http://www.osp.ru/win2000/2006/08/3873423/ - вроде нормально
Компонент Desktop Search можно загрузить по адресу
2. http://list.windowsitpro.com/t?ctl=40AEA:29133
24. Василий Демидов (Душелов) 20.05.09 15:57
25. ValentinV (ValentinV) 20.05.09 16:19
(3) указывал "пока не въехал про практическую ценность".
Вотя тоже ищу... ищу.
26. ValentinV (ValentinV) 20.05.09 16:48
(22) На эту тоже ругается.
Winda у меня обычная, офисная. Все на ней работают.
Пробовал дома, то же самое.
Сколько еще файлов надо установить,
может пакет STUDIO еще не помешает.
27. ValentinV (ValentinV) 20.05.09 16:50
Может никто кроме Вас её и не пробовал устанвливать?
А у Вас наверное Studio стоит?
28. vip (vip) 20.05.09 16:56
(26) > Winda у меня обычная, офисная.

Ну, тогда тебе вряд ли что поможет.
Офисной Windы никогда не встречал.
29. ValentinV (ValentinV) 20.05.09 17:32
(28)Если нету разумных ответов, ну и не стоит скворчать и вякать.
1. 50 человек в офисе работают на ней.
2. Я тебя и не спрашивал.
3. Ни мне и не кому твои дурацкие ответы не нужны.
4. Лучше не доставай блин.
----------------------------------------------------------
Тупо установил http://www.microsoft.com/downloads/thankyou.aspx?familyId=6a35ac14-2626-4846-bb51-ddce49d6ffb6&displayLang=ru
Все равно просит
http://www.microsoft.com/downloads/details.aspx?FamilyId=5FBC5470-B259-4733-A914-A956122E08E8&displaylang=ru


30. vip (vip) 20.05.09 18:12
(29) 1. На чем? На офисной Winde? Где брал такую?
2. А я и не отвечал. Просто сильно заинтересовала офисная Winda.
3. НЕ КОМУ конечно не нужны.
4. Блин вроде ниоткуда не доставал.
5. Проблемы с подлинной ОС Microsoft Windows? Офисная не прокатывает?
6. Не хами.
31. Аркадий Кучер (Abadonna) 20.05.09 18:20
Не, ребята, мне тоже интересно вас ис дас "Windows Office".
Когда я успел просохатить?
32. ValentinV (ValentinV) 20.05.09 18:22
(28)Делать нечего или в заднице детство играет.
Не лезь, если тебя не спрашивают.
-------------------------------------
А автору надо было лучше проверить.
33. Аркадий Кучер (Abadonna) 20.05.09 18:23
(0)"*** Для работы компоненты потребуется установленный Microsoft .NET Framework 2.0, который можно скачать"
Вась, а это к каждой твоей компоненте надо качать? ;))))))) А то я уж устал :)
34. ValentinV (ValentinV) 20.05.09 18:25
(33)Васе надо установочные пакеты делать
и коробочные версии.
35. vip (vip) 20.05.09 18:32
(32) Постараюсь объяснить, почему я вмешался.

Зацепила фраза:
"Microsoft .NET Framework 2.0, требует лицензии.
Т.Е. демка получается платная."

Фраза совсем не безобидная, т.к. намекает, что т. Душелов (весьма уважаемый и грамотный программист, кстати) способен использовать (и распространять) нелицензионный продукт.

А существование "офисной Windы" повергло меня в легкий шок.
Я и постарался уточнить, что же это за продукт от Microsoft.
Возможно .Net Framework несовместим с этой версией Windows?
36. Василий Демидов (Душелов) 20.05.09 19:00
Вы используете пиратскую версию виндовс? Тогда мы идем к вам! :)
37. Василий Демидов (Душелов) 20.05.09 19:01
(33) Ага. Для каждой надо отдельно скачивать и устанавливать. И, главное, не перепутать!
38. ValentinV (ValentinV) 20.05.09 19:35
(35) С пониманием Ваши обяснения принимаю...
С сочуствием отношусь к Вашему шоковому состоянию.
По-отцовски, настоятельно и немедленно рекомендую отдохнуть.
-----------------------------------------------------------------------
Вася хотел что-бы его программу оценили или сделали заказ.
Если так, то я и мои друзья испытываем искренний интерес.
Если Вася не против и не передумал я был бы признателен Васе,
если он поможет или подскажет как профессионал высокого класса.
Вопрос:
Где и какую я совершаю ошибку, если у меня установленно лицензионное
программное обеспечение, а указанную программу не удается испытать?
С уважением, Валентин.
З.Ы.
Можно, а может быть даже лучше, в личку.
39. vip (vip) 20.05.09 21:59
(38) Ну, по-отцовски Вам рановато мне рекомендовать, по моему скромному мнению. Так как для отца возраст у Вас должен перешагнуть 72-75 летний рубеж.

Если ув. Василий согласен на ласково-уменьшительное "Вася", то он конечно подскажет.

Но попробую, с Вашего разрешения (и надеюсь, с согласия Василия), подсказать я.
При установленном ЛИЦЕНЗИОННОМ программном обеспечении испытание представленной программы не вызывает никаких затруднений.

А вот при установленной "офисной Winde" успешная инсталляция сомнительна.
40. bookworm1c (bookworm1c) 10.08.09 20:50
Проиндексировал. Сообщение: Проиндексировано ...
Файл существует, запись есть, индекс есть, при поиске запись найдена,
а файл не находит

*** пояснения

После индексации и введении строки поиска и нажатии на кнопку:

Процедура ТекстПоискаОткрытие(Элемент, СтандартнаяОбработка)

В строке
Если ВК.Найти(ТекстПоиска) = Истина Тогда
Возвращает ИСТИНА

В строке
Для сч = 1 По ВК.КоличествоФайлов() Цикл
ВК.КоличествоФайлов() возвращает 0

***
В индексе находит запись, а инфу о файлах не находит

Я так понимаю.


41. Павел Ванин (pahich) 01.06.10 17:41
Интересная вещь, нашел ей применение. Но вот любопытный факт - на части компьютеров работает отлично, а на части, при том что пакет установки одинаковый, не регистрирует дэ-эль-эль-ку... пока не понял почему...
42. dushelov (Душелов) 01.06.10 22:54
43. Павел Ванин (pahich) 04.06.10 11:42
Разобрался :)
проблемма была не в регистрации длл, а в правах доступа к открываемым файлам пользователей домена. Проблема устранена. :) Только осталось непонятно почему писал ошибку подключения ВК, а не доступа к файлу %)