E
E
EVGENIJ NEFEDOV2019-09-10 18:53:45
Sphinx
EVGENIJ NEFEDOV, 2019-09-10 18:53:45

Learnable search, how best to implement?

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

Answer the question

In order to leave comments, you need to log in

2 answer(s)
D
Dimonchik, 2019-09-10
@dimonchik2013

Машинлернера с задачей о рюкзаке и опытом оптимизационных задач
поиск тут вообще до

A
al_gon, 2019-09-19
@al_gon

This is what I would do:
Create an add. an index or indexes where marked documents (requests/products) lie, but without weights on specific terms (words), but rather on features.
Plus indexes where the marked documents which do not approach at all lie.
That is, two classes of auxiliary documents, to which the request also goes, if the answer is unambiguous, then the search from the main index does not occur.
Many unknown details: what is the search itself like: with or without errors, transliteration, etc.
Which engine will be selected, synchronization, auxiliary indexes with the main one. But these are details.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question