【问题标题】:Rest Api for search by products, brands and more using single search inputRest Api 使用单一搜索输入按产品、品牌等进行搜索
【发布时间】:2020-05-26 00:23:50
【问题描述】:

我是 Node 和 Mongodb 的新手。 我想实现 Search Rest api,将单个参数传递给 api 导致在 mongo 集合中搜索,检查类别、子类别值并返回相关的关键字匹配对象。就像 Flipkart 搜索栏一样,带有建议关键字,我应该遵循什么来实现这一点。我只是了解基本的 CRUD 操作而已。任何建议或参考实践对我都有帮助。谢谢

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    对于上述实现,您可以采用两种方法。

    1) 基本方法。我们可以创建一个搜索集合,其中包含以下字段,如

    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).
    

    在每个产品、品牌等添加时,我们都会在搜索表中创建一个条目。 同样,在删除时,我们会从搜索表中删除该产品或品牌

    我们会有一个名为 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) 复杂的方法:您可以使用弹性搜索来代替使用搜索表,以获得更快、更可靠的方法

    【讨论】:

      【解决方案2】:

      您可以使用 mongodb 文本搜索 功能 或者您可以根据您的要求使用弹性搜索。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-22
        • 1970-01-01
        相关资源
        最近更新 更多