Пошук одночасно по кільком полям

07.12.2017 03:13

Мета інструкції: продемонструвати як можна шукати в модулі аналітики по кількох полях одночасно

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

Задача. З великою ймовірністю відібрати закупівлі м’яса організаторами із Полтавської області за виключенням обласного центра - Полтави.

Рішення:

Спочатку спробуємо знайти всі лоти у яких у назві тендера зустрічається слово м’ясо. Для цього потрібно підготувати вираз = Тендер like '*м’ясо*'

Рисунок 1. Пояснення структури запиту

Вставити його в стрічку пошуку ідентифікатора лота. 

Для цього:

1. Відкрити випадаючий список для для поля ідентифікатор лота

2. Почати вводити будь-який текст


3. Вставити текст запиту = Тендер like '*м’ясо*'


На жаль, по такому запиту нічого не відбереться, оскільки апостроф - це спец символ і модуль аналітики сприймає як пошуковий запит те, що розташоване між апострофами

Щоб вирішити цю проблему треба дати зрозуміти модулю аналітики, що це саме апостроф, а не спец символ. Для цього потрібно зразу перед апострофом добавити ще один апостроф. Має вийти = Тендер like '*м’ясо*'. Далі цей запит вводимо у полі пошуку по ідентифікатору лота і ми отримаємо всі тендери, що містять у назві набір символів м’ясо

Слово м’ясо може бути написано кількома способами: м’ясо, м”ясо, мьясо. Щоб врахувати ці варіанти одним запитом, ми можемо використати ще один спец. символ - ?. Знак питання у запиті означає “будь-який символ”. Перепишемо ще раз цей запит = Тендер like '*м?ясо*'.

Якщо перевірити, які лоти відібрались, то стане помітно, що під цей запит попали всі лоти в назві тендера яких зустрічався набір символів м’ясо. Наприклад, електром’ясорубка, м’ясокомбінат, м’ясорізка. 

Цю проблему можна вирішити двома способами: 

1. зробити, щоб знаходило саме слово м’ясо (розглянемо зараз)

2. виключити всі слова, у яких в корені є слово м’ясо: м’ясорубка, м’ясокомбінат, м’ясорізка (розглянемо пізніше)

Для того, щоб у більшості випадків відокремити саме слово м’ясо, а не набір букв, потрібно використовувати символи (див нижче).

Символізує про початок/завершення
Приклад
Пробіл перед першою/останньою буквою 
Напівфабрикати,м’ясоморожене, котлети
Початок запису
М’ясо теляче, куряче, свиняче
Розділові знаки
Напівфабрикати;м’ясо, пельмені
Дужки
Подарунковий набір (м’ясо, шампур, мангал)


Для простоти прикладу припустимо, що є лише коми і пропуски в кінці і на початку слова. Також у пошуку, символ як те, що перед символо був пропуск так і те, що це перший символ. Тоді будуть наступні комбінації пошуку:

 '*^м?ясо *'  '*^м?ясо'  '*^м?ясо,'  '*,м?ясо *'  '*,м?ясо'  '*,м?ясо,'

Це можна записати двома способами:

а) Поєднавши умовами “або” (or)

 = Тендер like '*^м?ясо *' or Тендер like '*^м?ясо'  or Тендер like '*^м?ясо,'  or Тендер like '*,м?ясо *' or Тендер like  '*,м?ясо'  or Тендер like '*,м?ясо,' 

б) Використавши оператор схожості (WildMatch)

WildMatch(Тендер,  '*^м?ясо *',  '*^м?ясо',  '*^м?ясо,',  '*,м?ясо *',  '*,м?ясо',  '*,м?ясо,')

Також перед нами стоїть задача відібрати закупівлі по Полтавській області, але без міста Полтава. Для цього потрібно використати вже знайомий оператор like і його заперечення not WildMatch і створити додаткову частину

and РегионОрганизатора like 'Полтавська'  and not WildMatch (ГородОрганизатора, '*Полтава*')

Весь запит разом буде виглядати:

= WildMatch(Тендер,  '*^м?ясо *',  '*^м?ясо',  '*^м?ясо,',  '*,м?ясо *',  '*,м?ясо',  '*,м?ясо,') and РегионОрганизатора like 'Полтавська'  and not WildMatch (ГородОрганизатора, '*Полтава*')

Ми знаємо, що назву предмету закупівлі можуть вказати як в назві тендера, так і в описі лота, тендера, назві лота, назві товару. Тому можемо додати додаткові умови, наприклад, що дивитись ще на назву лота і опис тендера:

= (

WildMatch(Тендер,  '*^м?ясо *',  '*^м?ясо',  '*^м?ясо,',  '*,м?ясо *',  '*,м?ясо',  '*,м?ясо,')

or

WildMatch(ОписаниеТендера,  '*^м?ясо *',  '*^м?ясо',  '*^м?ясо,',  '*,м?ясо *',  '*,м?ясо',  '*,м?ясо,')

or

WildMatch(Лот,  '*^м?ясо *',  '*^м?ясо',  '*^м?ясо,',  '*,м?ясо *',  '*,м?ясо',  '*,м?ясо,')

)

and РегионОрганизатора like 'Полтавська'  

and not WildMatch (ГородОрганизатора, '*Полтава*')

Наведений вище пошук можна використовувати для будь-якого поля у модулі аналітики.

Наприклад, якщо ми хочемо відібрати лише ті товари, що продавали учасники із Рівненської області ми можемо зробити у полі Товар наступний запит:

= РегионУчастника like 'Рівненська' 

Тендер like '*м'ясо*'

Землетруси, пандемія, війна: чому і як публічним закупівлям варто готуватися до надзвичайних ситуацій

Нам потрібні чіткі і детальні правила закупівель на випадок надзвичайних ситуацій.

05.04.2023 15:05

Відкриті дані про бізнес і для бізнесу: навіщо їх повертати

Які вигоди принесе оприлюднення Єдиного державного реєстру юридичних осіб і фізичних осіб підприємців, і чи безпечно його публікувати.

13.09.2022 13:00

Аналіз скарг у BI Prozorro

Ми оновили функціонал аналізу скарг у публічному модулі аналітики. Розповідаємо, як він працює тепер та що саме змінилося

09.06.2021 10:30

Інструкція для пошуку постачальників в BI Prozorro

Як скласти список потенційних постачальників дефіцитних товарів за допомогою інструментів аналітики.

26.03.2020 13:00

© 2016 Моніторинговий портал DoZorro. Всі права захищено

Необхідно авторизуватись

Необхідно авторизуватись

Помилка з'єднання