Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Необходимо реализовать поиск в БД.

БД - MySQL и PgSQL

Работа с БД идет через адаптер.

Быстродействие поиска следует максимально оптимизировать.

Входные данные:

текстовую строка,

интервал дат создания записей (необязательный параметр),

область поиска - базисная компания, которой принадлежат записи справочников, входящие в область поиска (необязательный параметр)

Если в поисковом фильтре не задана компания, в базисе которой проводится поиск, то поиск выполняется в текущем базисе пользователя. получить из переменной CURRENT_PARTNER в сессии.

Выходные данные:

массив записей отсортированный по релевантности в порядке ее убывания

Описание поиска:

В результате поиска пользователю должен быть предоставлен набор записей из справочников системы, которые могут является объектами и/или документами системы (и те и другие - записи соответствующих справочников)

приоритет при выводе результатов имеют документы, т.е. записи о документах, которые непосредственно содержат искомые подстроки или же имеются таковые записи, ссылающиеся на эти документы.

пример: пользователь задает строку поиска в которой указывается наименование товара А полученного от поставщика Б. по факту создания записи о такой операции в в справочнике документов на приход товаров от поставщиков был создан документ оприходования B (т.е. запись документа имеет внутреннюю свзяь с записями о товаре А и поставщике Б)

в результате поиска система должна обнаружить:

* вхождение подстроки с наименованием товара А в запись о нем в справочнике товаров

* вхождение подстроки с наименованием подставщика Б в запись о нем в справочнике компаний

* связь записи о документе B с записями о товаре А и поставщике Б

В ходе сортировки полученного списка записей с учетом релевантности приоритет имеет запись о документе B и она попадает в верх списка, далее идут записи о товаре и поставщике (при прочих равных условиях они имеют одинаковую релевантность).

В случае если найден еще один документ Г, имеющий связь с товаром А, и другим поставщиком Д, то его релевантность меньше, в сравнении с документом В, т.к. он удовляетворяет только 1 искомой подстроке и выводится он в поисковом ответе вторым по очереди

Выборка записей при поиске выполняется по совпадению с поисковым запросом независимо от того в каком поле находится искомое значение, аналогично и нет зависимости от справочника, содержащего записи (если в условии поиска не задан таковой)

Реализация поиска:

метод адаптера + внешняя extjs-форма, вызываемая из любого модуля для задания условий поиска (фильтра). метод адаптера возращает набор id записей. сортировка записей в возращенном массиве в порядке релевантности поисковому запросу.

Оценка производительности:

Записи в справочниках в среднем имеют 10 полей. Поле записи может хранить свое значение в одном из 10 типов данных (значение должно быть проверено по всем типам). можно снизить нагрузку за счет поиска по сразу всем типам данных т.о.:

SELECT *

FROM property_value

WHERE (

f1 = 'подстрока' or

f2 = 'подстрока' or

..

fn = 'подстрока'

)

где f1..fn - перечень полей соответствующих хранимым типам данных

в дополнение к этому можно выполнять не последовательный поиск каждой из подстрок поискового запроса, а параллельно всех подстрок за один проход по полю записи.

Подробности при переписке.

Обязательно посмотрите приложенный файл.

Подробности при переписке.

skype mbarussia

200drive(at)gmail.com

В приват не пишите !!!!

14 лет назад
vdovcenko
Сергей 
51 годРоссия
17 лет в сервисе
Был
3 года назад
  • Похожие заказы
  • Добрый день! Нужно сделать флеш баннер размером 468x60 px. Требования к баннеру: --- В flash-ролике сделать элемент button. Для этого элемента написать следующий JavaScript-код: on (release) { getURL(clickTAG, "_blank"); } никаких иных ссылок (в том числе ...

    Завершен
    14 лет назад
  • Здравствуйте Есть самописная система заказа услуг через интернет: логин, бланк заказа и админская часть (в сумме файлов 15 всего). Нужно внести в нее ряд исправлений, в основном убрать из селектов бланка параметры, но есть и пара чуть ...

    Закрыт
    14 лет назад
  • Нужен самый простой счетчик посещений ... - колличество хитов и хостов. Вывод графический. Счетчик должен иметь возможность накрутки.

    Закрыт
    14 лет назад
  • $1000

    Ищется разработчик (команда разработчиков) для создания сайта с партнерской программой и платниками. Все четко описано в ТЗ. Возможно использовать любые готовые решения, например, testzasms-ru. Опыт обязателен. Хочется услышать сроки. Предпочтение отдадим самой низкой цене. Бюджет до 1000 у.е.

    Закрыт
    14 лет назад
  • $40

    ТЗ в приложении Стоимость 40-50 уе В предложении указать стоимость работ и срок выполнения. Скрипт нужен еще вчера :) Читать внимательно. Делать аккуратно, с комментариями. При необходимости дам дополнительные сведения.

    Завершен
    14 лет назад