Rest Api для поиска по продуктам, брендам и другим параметрам с помощью единого ввода поиска - PullRequest
0 голосов
/ 25 мая 2020

Я новичок в Node и Mongodb. Я хочу реализовать Search Rest api с передачей одного параметра в api, что приведет к поиску в коллекциях mon go, проверяя категорию, значения подкатегории и возвращая связанный объект сопоставления ключевых слов. Так же, как панель поиска flipkart, с ключевыми словами предложения, чему я должен следовать, чтобы достичь этого. Я просто знаком с базовыми c CRUD-операциями, вот и все. Мне полезны любые предложения или рекомендации. Спасибо

Ответы [ 2 ]

0 голосов
/ 25 мая 2020

вы можете использовать текстовый поиск mongodb или go с elasati c поиск в соответствии с вашими требованиями.

0 голосов
/ 25 мая 2020

Для описанной выше реализации можно использовать два подхода.

1) Базовый подход c. Мы можем создать поисковую коллекцию, которая будет иметь следующее поле, например

Search
_id, name, description, type (brand, products, etc), type_id (brand_id, product_id), logo (It can be a brand logo, or product logo and etc).

Для каждого продукта, бренда и т. Д. c добавляем, мы будем создавать запись в таблице поиска. Точно так же при удалении мы удалим этот продукт или бренд из таблицы поиска

У нас будет конец с именем http: /// search /: string, который в ответ даст результат как

{
  data: [
    {
    _id: 507f1f77bcf86cd799439011,
    name: 'Clothing',
    description: "Sample description about clothing",
    type: 'brand',
    type_id: 675f1f77bcf86cd799439124,  // brand id reference,
    logo: "http://<domain_name>/logo/675f1f77bcf86cd799439124"
  },
  {
    _id: 5d3f1f77bcf86cd799439234,
    name: 'Monitor',
    description: "Sample description about Monitor",
    type: 'product',
    type_id: 5j5f1f77bcf86cd799439987,  // product id reference
    logo: "http://<domain_name>/logo/5j5f1f77bcf86cd799439987"

  }, {
    _id: 507f1f77bcf86cd799439333,
    name: "Mobile",
    description: "Sample description about Mobile",
    type: 'brand',
    type_id: 876f1f77bcf86cd799439444,  // brand id reference
    logo: "http://<domain_name>/logo/876f1f77bcf86cd799439444"

  }

]}

2) Сложный подход: вместо использования таблицы поиска вы можете go с помощью elasti c искать более быстрый и надежный подход

...