not really known
Go to file
2022-10-23 12:11:53 +03:00
app Reformed project, improved text search 2022-10-23 12:11:53 +03:00
requirements Reformed project, improved text search 2022-10-23 12:11:53 +03:00
.editorconfig initial commit 2022-10-21 20:25:30 +03:00
.env.example change translate 2022-10-22 17:31:40 +03:00
.gitignore fixed excel parser, processed to db 2022-10-22 03:09:39 +03:00
pg.sql added queried search 2022-10-22 05:07:25 +03:00
pylintrc added excel parser 2022-10-22 00:09:26 +03:00
README.md updated README 2022-10-23 02:10:50 +03:00

Tender Hack backend

Серверная часть приложения по умному поиску товаров

Запуск

$ python3 -m venv venv && source venv/bin/activate
$ pip install -r requirements/base.txt
$ ./app/manage.py makemigrations && ./app/manage.py migrate
$ ./app/manage.py loaddata products.json # не возможно положить в git репозиторий
$ ./app/manage.py runserver

Описание фильтров для API

фильтры можно применять в неограниченным количеством списком в запросе

Запрос по всем полям

так же поддерживается поиск по числовым характеристикам, например: размер 100
{
  "value": "любая строчка, в том числе с ошибками",
  "type": "All"
}

Запрос по имени продукта

{
  "value": "часть имени товара, в любой раскладке, с ошибками и т д",
  "type": "Name"
}

Запрос категории продуктов

{
  "value": "часть имени категории, с ошибками и т д",
  "type": "Category"
}

Запрос по имени характеристики

{
  "value": "часть значения характеристики, с ошибками и т д",
  "type": "Characteristic"
}

Запрос по имени и значению характеристики

{
  "value": "значение характеристики",
  "type": "часть названия характеристики"
}

Фильтрация по значению цифровой характеристики

операторы: = >= <= < >, так же поддерживается ранжированные значения
{
  "value": ">=100",
  "type": "*Размер"
}

Множественное применение фильтров

Search API позволяет получить общие объекты среди разных фильтров, например черные каучуковые сапоги
При использовании одной и той же характеристики значения этих характеристик объединяются
Так же присутствует пагинация результата
{
  "body": [
    {
      "value": "сапАги",
      "type": "Name"
    },
    {
      "value": "каучук",
      "type": "Матерьял"
    },
    {
      "value": "синий",
      "type": "Цвет"
    },
    {
      "value": "черный",
      "type": "Цвет"
    }
  ],
  "limit": 5,
  "offset": 0
}
- вернет синие и черные ботинки из каучука

Автокомплиты и подсказки

Наша система подразумевает наличие подсказок по именам продуктов, категорий и т д в строке поиска товаров. Поиск оптимизирован для постоянных запросов

Система релевантности

Мы реализовали систему релевантности, основанной на частоте посещения странице продукта пользователем