【发布时间】:2020-05-26 00:23:50
【问题描述】:
我是 Node 和 Mongodb 的新手。 我想实现 Search Rest api,将单个参数传递给 api 导致在 mongo 集合中搜索,检查类别、子类别值并返回相关的关键字匹配对象。就像 Flipkart 搜索栏一样,带有建议关键字,我应该遵循什么来实现这一点。我只是了解基本的 CRUD 操作而已。任何建议或参考实践对我都有帮助。谢谢
【问题讨论】:
我是 Node 和 Mongodb 的新手。 我想实现 Search Rest api,将单个参数传递给 api 导致在 mongo 集合中搜索,检查类别、子类别值并返回相关的关键字匹配对象。就像 Flipkart 搜索栏一样,带有建议关键字,我应该遵循什么来实现这一点。我只是了解基本的 CRUD 操作而已。任何建议或参考实践对我都有帮助。谢谢
【问题讨论】:
对于上述实现,您可以采用两种方法。
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) 复杂的方法:您可以使用弹性搜索来代替使用搜索表,以获得更快、更可靠的方法
【讨论】:
您可以使用 mongodb 文本搜索 功能 或者您可以根据您的要求使用弹性搜索。
【讨论】: