1c повнотекстовий пошук. Повнотекстовий пошук та його можливості

3.4.9 повнотекстовий пошук: Автоматизований документальний пошук, при якому як пошуковий образ документа використовується його повний текст або суттєві частини тексту (англ. Full text searching, фр. Recherche en texte integral)

Повнотекстовий індекс

Перші версії програм повнотекстового пошуку передбачали сканування всього вмісту всіх документів у пошуку заданого слова чи фрази. При використанні такої технології пошук займав дуже багато часу (залежно від розміру бази), а в інтернеті було б нездійсненним. Сучасні алгоритми заздалегідь формують для пошуку так званий повнотекстовий індекс - словник, в якому перераховані всі слова та зазначено, в яких місцях вони трапляються. За наявності такого індексу достатньо здійснити пошук потрібних сліву ньому і тоді одразу ж буде отримано список документів, у яких вони зустрічаються.

Примітки

Див. також


Wikimedia Foundation. 2010 .

Дивитися що таке "Полнотекстовий пошук" в інших словниках:

    Автоматизований інформаційний пошук, при якому як пошуковий образ документа використовується його повний текст або суттєві частини тексту. Англійською мовою: Full text searching Див. також: Автоматизований інформаційний пошук… … Фінансовий словник

    повнотекстовий пошук- Автоматизований документальний пошук, при якому як пошуковий образ документа використовується його повний текст або суттєві частини тексту. [ГОСТ 7.73 96] Тематики пошук та розповсюдження інформації Узагальнюючі терміни інформаційний … Довідник технічного перекладача

    повнотекстовий пошук- 3.4.9 повнотекстовий пошук: Автоматизований документальний пошук, при якому як пошуковий образ документа використовується його повний текст або суттєві частини тексту en Full text searching fr

    повнотекстовий пошук- Rus: повнотекстовий пошук Ang: full text searching Fra: recherche en texte integral Автоматизований документальний пошук, при якому як пошуковий образ документа використовується його повний текст або суттєві частини тексту. ГОСТ 7.73. Словник з інформації, бібліотечної та видавничої справи

    ПОВНОТЕКСТОВИЙ ПОШУК- згідно з ГОСТ 7.73–96 «Пошук та розповсюдження інформації. Терміни та визначення», – автоматизований документальний пошук, при якому як пошуковий образ документа використовується його повний текст або суттєві частини тексту … Діловодство та архівна справа у термінах та визначеннях

    Пошук даних розділ інформатики, що вивчає алгоритми для пошуку та обробки інформації як у структурованих (див. напр. бази даних) так і неструктурованих (напр., текстовий документ) даних. Пошук даних нерозривно пов'язаний із поняттям… … Вікіпедія

    Інформаційний пошук (ІП) (англ. Information retrieval) процес пошуку неструктурованої документальної інформації та наука про цей пошук. Зміст 1 Історія 2 Інформаційний пошук як процес … Вікіпедія

    - (англ. Information retrieval) процес пошуку неструктурованої документальної інформації, що задовольняє інформаційні потреби (англ.) рос., та наука про цей пошук … Вікіпедія

    ГОСТ 7.73-96: Система стандартів з інформації, бібліотечної та видавничої справи. Пошук та розповсюдження інформації. терміни та визначення- Термінологія ГОСТ 7.73 96: Система стандартів з інформації, бібліотечної та видавничої справи. Пошук та розповсюдження інформації. Терміни та визначення оригінал документа: 3.2.5 автоматизована інформаційно Пошукова система: ІПС, … Словник-довідник термінів нормативно-технічної документації

Книжки

  • Історія Візантії. Хрестоматія. Частина 2. Історичні документи та дослідження (DVD) , Мартов Володимир , Видавництво "Діректмедіа Паблішинг" випускає нову серію "Кліо", що є рядом видань з всесвітньої історії. Відкривають серію хрестоматії з історії Візантії - "Історики Візантії". Категорія: Історія. МультимедіаВидавець:

Механізм повнотекстового пошуку

Основні можливості повнотекстового пошуку

  • підтримка транслітерації (написання російських слів символами латиниці відповідно до ГОСТу);
  • підтримка заміщення (написання частини символів у словах одноклавішними латинськими символами);
  • можливість нечіткого пошуку (літери у знайдених словах можуть відрізнятися) із зазначенням порога нечіткості;
  • можливість вказівки області виконання пошуку за вибраними об'єктами метаданих;
  • представлення результатів пошуку у форматі XML та HTML з виділенням знайдених слів;
  • повнотекстове індексування назв стандартних полів ("Код", "Найменування" тощо) усіма мовами конфігурації;
  • виконання пошуку з урахуванням синонімів російської, англійської та української мов;
  • морфологічний словник російської містить ряд специфічних слів, які стосуються галузей діяльності, автоматизованим з допомогою системи програм 1С:Підприємство;
  • можливість використання додаткових словників повнотекстового пошуку;
  • до складу словників, що постачаються, включені словникові бази та словники тезаурусу та синонімів російської, української та англійської мов, надані компанією "Інформатик".

Повнотекстовий пошук у базі даних

Механізм повнотекстового пошуку даних системи 1С:Підприємство 8 дозволяє здійснювати пошук в базі даних із зазначенням пошукових операторів (І, АБО, НЕ, ПОРУЧ і ін.).

Механізм повнотекстового пошуку заснований на використанні двох складових:

  • повнотекстового індексу, що створюється для поточної бази даних і потім періодично, при необхідності, оновлюється;
  • засобів виконання повнотекстового пошуку.

Створення та оновлення повнотекстового індексу може бути виконано інтерактивно, в режимі 1С:Підприємство 8, або програмно засобами вбудованої мови. Нижче наведено діалог управління повнотекстовим індексуванням у режимі 1С:Підприємство:

Для пошуку даних у базі даних може використовуватися, наприклад, обробка Пошук даних, представлена ​​нижче.

У наведеному прикладі знайдені документи, реквізити яких містять значення, що починаються на "Компл" і "Вент" - контрагент "Комплет ТД" та реквізити, що містять різні форми слова "вентилятор".

Система 1С:Підприємство 8 дозволяє здійснювати вибіркове включення даних прикладних об'єктів та їх реквізитів у повнотекстовий пошук. Також існує можливість обмежити область пошуку даними лише вказаних об'єктів конфігурації.

Повнотекстовий пошук у довідковій системі

У довідковій системі 1С:Підприємства 8 також реалізовано повнотекстовий пошук, що дозволяє використовувати пошукові оператори І, АБО, НЕ, ПОРУЧ та ін. При цьому знайдені слова виділяються.

Програмний інтерфейс

Використовуються такі прикладні об'єкти:

  • МенеджерПовнотекстовогоПошуку
  • СписокПовнотекстовогоПошуку
  • ЕлементСпискуПовнотекстовогоПошуку

МенеджерПовнотекстовогоПошуку має методи для побудови індексу пошуку, перевірки його актуальності, а також створення списку пошуку типу СписокПовнотекстовогоПошуку за заданим запитом.

МенеджерПовнотекстовогоПошуку доступний як властивість глобального контексту ПовнотекстовийПошук.

СписокПолнотекстовогоПошуку надає доступ до результатів пошуку. Крім того, можна вказати область пошуку у вигляді масиву елементів метаданих конфігурації.

Результатом пошуку є ЕлементСпискуПовнотекстовогоПошуку.

Оператори рядка пошуку

У рядку введення допускається використання наступних пошукових операторів:

І (AND або #) - пошук даних, що містять усі слова; приклад: "запис І документ" - у реквізитах мають бути і "проведення" та "документ" (з урахуванням морфології);

АБО (OR або | або,) - пошук хоча б одного слова з перерахованих; приклад: "запис АБО документ" - у реквізитах має бути хоча б одне із слів "запис" або "документ";

НЕ (NOT або ~) - пошук даних, у реквізитах яких є перше слово, але немає другого; приклад: "закриття НЕ місяць" - будуть знайдені всі, що містять "закриття", але не містять слова "місяць". Використання "~" на початку рядка не допускається;

ПОРУЧ/n (NEAR/[+/-]n) - пошук даних, що містять в одному реквізиті зазначені слова з урахуванням морфології на відстані n слів між словами.

Знак вказує, у якому напрямку від першого слова шукатиметься друге слово ("+" – після першого; "-" – до першого слова).

Якщо знак не вказано, буде знайдено дані, що містять вказані слова на дистанції n слів один про одного.

Порядок слів не має значення.

  • "фен ПОРУЧ/3 повітря" - будуть знайдені дані, в яких "повітря" знаходиться не більше 3-х слів до або після "фен";
  • фен ПОРУЧ/+3 повітря - будуть знайдені дані, в яких "повітря" знаходиться не більше 3-х слів після "фен";
  • фен ПОРУЧ/-3 повітря - будуть знайдені дані, в яких "повітря" знаходиться не більше 3-х слів перед "фен".

ПОРУЧ(NEAR) - спрощений оператор дистанції: обидва слова розташовані не далі, ніж у 8-ми словах один від одного; приклад: "проведення ПОРУЧ документ";

"" (текст у лапках) - пошук точної з урахуванням морфології фрази, приклад: "проведення документа" - еквівалентно: проведення /1 документа;

() - Угруповання слів (скільки завгодно рівнів вкладеності); приклад: "(проведення | виписка) # (рахунки, документа)";

* - пошук із використанням групового символу (заміна закінчення слова). Повинно бути введено більше 1 символу; приклад: "доку*" - знайде "документ", "документувати", "документальний" та ін;

# - нечіткий пошук слів із заданою кількістю відмінностей від зазначеного (якщо не зазначено, то = 1); приклад: запит "Система" знайде "систама", "сивтема"; запит "Система # 2" знайде "сіттама", "сеттема";

Пошук з урахуванням синонімів російської, англійської та української мов. "!" ставиться перед відповідним словом; приклад: пошук "!червоний кахель", знайде ще й "червоний кахель" та "кораловий кахель".

Якщо не вказано жодних операторів (слова набрані через пропуск), то програма здійснює пошук усіх слів із запиту з використанням оператора І.

Приклади

СписокПошуку = ПовнотекстовийПошук.СтворитиСписок("", 20); СписокПошуку.ОтримуватиОпис = Істина;

Масив МД = Новий Масив (); МасивМД.Додати(Метадані.Довідники.Товари); МасивМД.Додати(Метадані.Документи.КасовийЧек);

СписокПошуку.ОбластьПошуку = МасивМД; СписокПошуку.РядокПошук = ПолеВведенняПошуку; СписокПошуку.РозмірПорції = РозмірПорції; СписокПошуку.ПершаЧастина();

Якщо СписокПошуку.ПовнаКількість() = 0 Тоді Якщо СписокПошуку.ЗанадтоБагатоРезультатів() Тоді Попередження("Занадто багато результатів, уточніть запит."); КінецьЯкщо; Повернення; КінецьЯкщо;

Колво = СписокПошуку.ПовнаКількість();

СтрHTML = СписокПошуку.ОтриматиВідображення(ВідображенняПовнотекстовогоПошуку.HTMLТекст); Повідомити(СтрHTML);

Для кожного індекс=0 За СписокПошуку.Кількість-1 Цикл елемент = СписокПошуку.Отримати(індекс); Повідомити (елемент.Подання); КінецьЦикл;

Особливості

Повнотекстовий пошук працює по всьому масиву даних, тому під час використання треба обов'язково пропускати результат через фільтр безпеки.

Наприклад, у мультибазній системі необхідно відсікати об'єкти інших баз.

Крім того, така фільтрація тісно перетинається з контролем доступу. Відомо, що дуже часто "дірою" у безпеці є саме механізми пошуку.

Функціональність нового пошуку заснована на двох механізмах:
- Повнотекстовий пошук (працює дуже швидко і вимагає мінімум обчислювальних ресурсів);
- пошук засобами СУБД (загалом тривалість пошуку та витрати обчислювальних ресурсів пропорційні обсягу інформації у таблиці).

У поточній реалізації пошук у списку здійснюватиметься без використанняповнотекстового пошуку у наступних випадках ():
- повнотекстовий індекс вимкнено на рівні інформаційної бази;
- Об'єкт основної таблиці не індексується повнотекстовим індексом;
- в результаті пошуку за допомогою повнотекстового пошуку, було отримано помилку.

Якщо ж повнотекстовий пошук включений в інформаційну базу, а індекс не оновлений зовсім або частково (з моєї практики 95% інформаційних баз Замовників), то користувач при пошуку отримає або недостовірний або порожній результат пошуку.

Запитуємо у Фірми 1С – як бути? як гарантувати достовірність результатів пошуку завжди?
Отримуємо відповідь: Так, для того, щоб результати пошуку при включеному повнотекстовому пошуку були актуальними, потрібно стежити за тим, щоб індекс повнотекстового пошуку був актуальним. Інших варіантів ефективного та актуального пошуку поки що немає ().

А чи існує взагалі "актуальний повнотекстовий індекс"? Залежить від кількості користувачів, інтенсивності зміни інформації в базі та частоти запуску оновлення індексу. Зазвичай оновлення індексу запускають раз на 60 секунд. Добре, якщо об'єктів було змінено небагато, і процедура встигла опрацювати всі зміни за ці 60 секунд. А якщо зробили перепроведення групи документів чи масовий перезапис довідника? У цьому випадку ніхто не може гарантувати час, через який пошук за індексом знову надасть достовірні дані.
В принципі, це не дуже критично, крім кількох ситуацій. Найчастіший варіант роботи користувачів - встановити у списку відбір за якимсь значенням, наприклад "Контрагенту", ввести новий або скопіювати існуючий документ та записати. Зі старим пошуком новий документмиттєво було видно у списку. Тепер користувач його побачить тільки через N секунд у кращому випадку, де N швидше ближче до 50-60 секунд, ніж до 2-3.
Якщо не помітити, що нового документа немає і за відібраними результатами надати інформацію будь-кому, то вона буде свідомо недостовірною.

Це було у разі нормальної роботи з інформаційною базою. А що буде у специфічних ситуаціях? Наведу кілька прикладів.
1) У робочій базі повнотекстовий індекс увімкнено і часто оновлюється. Користувач просить розгорнути йому копію робочої бази, що за нею зайнятися аналізом даних.
Відновлюємо бекап і даємо доступ. Ось тільки повнотекстовий пошук не працюватиме, т.к. індекс зберігається над СУБД, а окремих файлах(і у файловому, і в клієнт-серверному варіанті). Індексу немає в dt-файлі.
тобто. щоб користувач зміг використати пошук за списками - треба вимкнути повнотекстовий індекс у цій базі. Щоправда, користувач буде злегка здивований тому, що пошук буде виконуватися набагато довше. Або перебудувати індекс по всій основі.

2) (Актуально для більш-менш великих баз). У робочій базі повнотекстовий індекс увімкнено і часто оновлюється. Настає кінець місяця і починається закриття періоду. Починаємо масово вантажити та перепроводити документи. Для зниження навантаження на систему блокуємо виконання регламентних завданьвідповідно, і оновлення індексу зупиняється. Користувачі будуть, м'яко кажучи, здивовані - чого ж у списках немає нових або змінених документів. Єдиний вихід – відключити повнотекстовий пошук для інформаційної бази, і, відповідно, отримати ще велике навантаженняобладнання за рахунок важкого пошуку по всіх реквізитах.

Таким чином, як на мене, операція з оновлення індексу стане ще одним головним болем адміністраторів інформаційних баз.
Система, яка раніше гарантувала 100% достовірність та актуальність інформації у будь-який момент, зараз перетворюється швидше на довідкову систему, В якій не можна бути повністю впевненим.
А користувачі отримують ще один привід для докору ІТ-шників – "ваша система неправильно працює".



Завантаження...
Top