Mongodb和elasticsearch中的电子商务产品列表,过滤器和搜索

问题描述

我正在从事春季启动开发的电子商务应用程序。 我目前在mongodb中存储了产品目录。产品变体之间存在父子关系。即主要产品内部的变体数组。所以我的mongodb结构如下:

{
    name,id,category,subcategory,rating,gender,brand
    .
    .
    .
    variants:[
        {
            size,price,color,quantity,mrp,discount,offers[{id,title,subtitle},....]
            store_id,filters:[{name:"",value:""},{name:"",value:""}]

        },{
        }

    ]
},{
}

因此,我在这里根据品牌,类别,子类别(父级)在产品列表中显示产品,然后使用变体的数据(例如尺寸,颜色,价格范围,折扣百分比等)进行过滤。

我的列表和排序过滤器(价格从低到高,最新等)在此结构下正常工作。筛选器是完全动态的,其中键值对存储为每个变量的筛选器数组。 我正在应用程序中显示过滤器,其中包含所有适用字段,例如性别,折扣,类别,品牌,过滤器值。

现在,我想使用弹性搜索进行搜索。我已经使用过mongodb全文搜索,但是在mongodb中无法自动完成,拼写错误等。所以我必须使用弹性搜索。 现在我的问题是如何在父/子模型的弹性搜索中使用相同的结构?在弹性方面,与mongo不同,它难以使用嵌套数组。另外,在具有动态过滤条件的elaticsearch中将过滤/排序与搜索文本一起使用似乎与mongodb聚合/匹配等不同。

如何有效地使用mongodb和弹性搜索进行过滤,以克服此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)