@nefedovgeka

Обучаемый поиск, как лучше реализовать?

Есть проект, в котором 1,5 млн товаров, у каждого товара список свойств, товарных предложений нескольких поставщиков, в общем один товар содержит довольно много семантики для нормального поиска.
Поиск сделали на основе сфинкса (стандартный полнотекст посгресса не подошёл из-за ограничения количества полей которым можно задавать разный вес), запилили кучу отраслевой логики, чтобы поиск понимал основные понятия отрасли, в общем все работает круто, во всяком случае ничего лучше по отрасли не видел.
НО он не учится! А хочется чтобы учился.
Поиск в основном служит для обработки сметных просчетов, в систему загружаются списки до 400 позиций и система по ним подбирает нужный товар, потом человек проходится по подобранным и корректирует, если система подобрала не то что нужно, вроде все хорошо, но нужно чтобы система запоминала при корректировке запрос, чтобы потом выдавать то что нужно.
Как я это вижу: сделать отдельный индекс, куда будут падать все слова из запросов и назначить в нем максимальный балл например 50, когда будет падать первый запрос, то каждому из слов будет назначаться по 1 баллу и после того как упадет 50 запросов то часть слов будет иметь 50 баллов а часть меньше, а ошибочные запросы вообще по 1 баллу, но как быть с накоплением ошибочных запросов? ведь из 1000 запросов будет уже возможно по 20 баллов у ошибочных слов.
В общем подскажите не программисту и не математику как тут быть, как лучше сделать "умный" индекс.
  • Вопрос задан
  • 456 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
Машинлернера с задачей о рюкзаке и опытом оптимизационных задач

поиск тут вообще до
Ответ написан
Комментировать
al_gon
@al_gon
Я бы так и делал:

Создать доп. индекс или индексы где лежат помеченные документы (запросы/продукты) но без весов на конкретые термы(слова), а скорее на фичи.
Плюс индексы где лежат помеченные документы, которые совсем не подходят.

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

Много не известных деталей: каков поиск сам по себе: с учётом ошибок или без, транслитерация и т.д.
Какой именно движок будет выбран, синхронизация, спомогательных индексов с основным. Но это детали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы