LINUX.ORG.RU

Как бы вы сделали поиск?

 


0

2

Нужно для своего сайта вкрутить поисковик по товарам, по смыслу это должно быть как на yandex.market: так когда вводишь в поисковой строке скажем «процессор» то показываются процессоры, а сбоку показываются фильтры по процессорам щелкая по которым можно менять критерии поиска. Сейчас есть мысль использовать sphinx или solr или что-то подобное готовое, но пока не ясно как сделать такой уточняющий фильтр как я написал выше. Поделитесь пожалуйста опытом если решали подобную задачу!

★★

есть продукты, есть «типы фильтров». Один продукт - много типов фильтров

типы фильтров - это текст (отдельные строки текстовика, отдельные строки в базе данных). Любой поисковик ищет по тексту, возвращает список подходящих типов фильтров

всё найденное отображаем списком. Ограничивает область поиска только теми товарами, для которых имеет смысл данный тип фильтра

всё

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

нужно чтобы я скормил движку поиска строку ввода от пользователя, а движок поиска выдал бы мне не только идентификаторы товаров, но и идентификатор типа товара либо идентификаторы фильтров товара. вопрос умеет либо так скажем sphinx или solr?

quester ★★
() автор топика
Ответ на: комментарий от quester

Сделай в сфинксе колонку с идентификатором типа. Колонок с дополнительными атрибутами можно создавать сколько угодно.

Vit ★★★★★
()

Достаточно mysql с его fulltext поиском, так вы получите все преимущества базы данных. А фильтры это классический поиск по столбцу

Можно теоретически сделать по каждому товару набор метаданных, по которым и формировать фильтр

ism ★★★
()
Ответ на: комментарий от dave

Elasticsearch рассматривал?

если не выйдет со сфинксом буду туда копать

quester ★★
() автор топика
Ответ на: комментарий от ism

Достаточно mysql с его fulltext поиском

У меня postgres. Тот же сфинкс судя по описанию умеет несравненно больше и русские окончания и тд и тп, вот только не ясно как сделать то о чем я написал в топике

quester ★★
() автор топика
Ответ на: комментарий от Vit

Сделай в сфинксе колонку с идентификатором типа. Колонок с дополнительными атрибутами можно создавать сколько угодно.

Можно подробней? Может ссылку на статью как такое сделать?

quester ★★
() автор топика
Ответ на: комментарий от quester

Крутизна не показатель, я не один магазин делал, и fulltext mysql всегда хватало, там способов поиска более чем достаточно

ism ★★★
()

Давать пользователю что-то вводить - неблагодарное дело. Сделай дерево с категориями как у dns, и/или картинку с рабочим местом, тыкаешь на системник, выкидываются готовые сборки + картина с внутренностями системника и т.д.

crutch_master ★★★★★
()
Ответ на: комментарий от quester

Вам что, ТЗ составить ?

Если просто, то достаточно завести поле поиска тип фуллтекст и туда ссыпать то что должно искаться

Цена и прочее идут обычными столбцами

А так, вот https://youtu.be/AogqmK1zY_0 постгресс обладает всем что нужно

https://youtu.be/0mTO6Ey6Pf4

ism ★★★
()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от quester

http://sphinxsearch.com/docs/devel.html#conf-rt-attr-uint отсюда и ниже.

Можно считать что у сфинкса внутри таблички, но с немного странными полями и странными запросами. Вообще, лучше документацию целиком прочитать и пару дней помедитировать, чтобы в голове уложилось и мы на одном языке разговаривали. Иначе не смогу нормально объяснить.

Vit ★★★★★
()
Ответ на: комментарий от ism

тоже умеет fulltext и получше

А вот это IMHO трындеж. Хотя возможно в посгресе есть другие вещи. Например в сфинксе нет перколатора (делать подписки на запросы)

Vit ★★★★★
()
Ответ на: комментарий от ism

сфинкс умеет релевантность по сложным формулам. боюсь что то что я в лоб нагорожу с postgres будет на порядки хуже чем сфинкс

quester ★★
() автор топика
Ответ на: комментарий от Vit

спасибо! почитаю, может еще спрошу если не достал еще

quester ★★
() автор топика
Ответ на: комментарий от ism

вам за приведенные ссылки то-же спасибо!

quester ★★
() автор топика
Ответ на: комментарий от quester

Вангую, что названия товаров в каталоге никто не склоняет, поэтому на морфологию плевать. Зато надо будет наполнять словарь синонимов (панас=panasonic). И делать autocomplete и автоисправление (через триграммы и ливенштейна)

Vit ★★★★★
()
Ответ на: комментарий от ism

А оно для каталога товаров надо ?

да

quester ★★
() автор топика
Ответ на: комментарий от quester

главная задача - никаких деревьев категорий

Не делай, сделай полки с товаром. Стильно, модно, креативно, лучше западает в память.

crutch_master ★★★★★
()
Ответ на: комментарий от Vit

Проблема в том, что люди, в основной массе, не любят что-то набирать тем более пальцами.

crutch_master ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.