Механизм поиска в прайс-листах.

Поиск одного товара в разных прайс листах осуществляется по отдельным словам. Порядок и состав таких слов может не совпадать. Более того слова могут быть написаны на разных языках. Для решения используем понятие «условие», которое описывается словом, фразой или несколькими синонимами. Набор описаний таких «условий» составляет базу знаний механизма поиска.  Так условием может быть название бренда, название модели или отдельные характеристики товара. Одно и то же условие может быть в разных товарах. Например, один и тот же объем упаковки.  Пересечение выборок по нескольким «условиям» дает нужный результат. Некоторые сущности могут отсутствовать у отдельных названий. Допустим, что бренд указывается не везде.  Таким образом эффективным будет поиск только по тем «условиям», которые есть во всех названиях товара. Лучшим способом составить запрос — это представить как бы вы обратились к коллеге описывая нужный товар. Вы интуитивно сократите набор условий до нужного.

Первоначально каждое название товара в прайс-листе разбивается на отдельные слова по пробелам. Сочетание буквы или цифры с другими символами (например скобками) также разделяется. По умолчанию отделяются и буквы от цифр. Например название Молоко  «Домик в деревне» (пастеризованное) 1л будет преобразовано  для анализа в Молоко Домик в деревне ( пастеризованное ) 1 л. Можно задать дополнительные символы для разбивки и если бы в настройках указаны символы (), то результат был бы Молоко Домик в деревне пастеризованное 1 л.

На следующем этапе программа проверяет наличие словосочетаний  по словарю и объединяет несколько слов в одну фразу используемую в поиске. В примере такой фразой может быть Домик в деревне.

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

Задавая условия поиска пользователь обучает программу обязательным словам, которые надо использовать автоматически. Задавать обязательные слова надо  так, как будто бы вы обращались к коллеге по работе чтобы назвать товар. Пример название ноутбук Lenovo ThinkPad T52 можно однозначно идентифицировать как T52 или ThinkPad T52 данные слова и являются обязательными. При автоматическом поиске может возникнуть ситуация, когда название товара имеет все слова заданные в образце, но сам товар отличается. Зачастую это относится к модификациям основного товара, которые в названии содержат дополнительные слова. Такие дополнительные слова рекомендуется всегда отмечать как обязательные, тогда программа исключит их из выборки.

Кроме обязательных слов в названии могут присутствовать «мусорные» слова, которые не только не помогают найти аналоги, но могут затруднить поиск при включении в условия. Примером может служить единица измерения для товара. В  разных вариантах она может быть написана по разному или вообще отсутствовать в названии. При этом указание ее в условиях требует наличие всех синонимов. Таким словам лучше присвоить статус «не использовать», чтобы в автоматическом режиме программа не обращала на них внимания.