电子商务列表搜索的Mongodb + Solr表关系

时间:2016-01-30 07:44:42

标签: php mongodb solr lucidworks

我一直在使用mongodb在电子商务应用程序中工作。现在我计划将我现有的电子商务基础设施与solr集成,以管理产品目录的显示。我的主要想法是结合以下功能: - 分类导航 - 分面 - 地理定位 - 自动建议

这是我想要重新创建的应用程序布局的示例:

enter image description here

目前我在mongodb中有以下收藏:

SetProcessAppId

分类收集:

ctypes

分类

Products: {
    "_id" : ObjectId("568887fc14a9962460fbbcbd"),
    "date_created" : "2014-10-01T00:00:00Z",
    "date_updated" : "2014-10-01T00:00:00Z",
    "name" : "Iphone 6 64gb",
    "price" : "100",
    "summary" : "Iphone 6 64gb",
    "delivery" : "Shipment",
    "shipment_location" : "USA",
    "shipment_weight" : "1",
    "shipment_package_quantity" : "1",
    "options" : {
        "id" : "price-1234567890",
        "value" : "111",
        "stock_level" : "1",
        "currency" : "usd"
    },
    "attributes" : {
        "id" : "atr_1",
        "name" : "memory",
        "values" : "64gb"
    },
    "images" : {
        "id" : "price-1234567890",
        "caption" : "image",
        "file" : [ 
            {
                "id" : "price-1234567890-1",
                "date_uploaded" : "2014-10-01T00:00:00Z",
                "length" : "123",
                "md5" : "hasg",
                "filename" : "price-1234567890-1",
                "content_type" : "PNG",
                "metadata" : "price-1324567890-1",
                "data" : "price-1234567890-1",
                "url" : "/images/folder/mongodb/a.png"
            }
        ]
    },
    "category_id" : "65",
    "category_index" : {
        "id" : "111",
        "sort" : "price"
    },
    "stock" : {
        "id" : "price-1234567890",
        "date_created" : "2014-10-01T00:00:00Z",
        "date_updated" : "2014-10-01T00:00:00Z",
        "parent_id" : "",
        "parent" : "111",
        "number" : "111",
        "quantity" : "11",
        "variant_id" : "1",
        "variant" : "11",
        "last" : "1",
        "prev_id" : "1",
        "prev" : "1",
        "level" : "1",
        "reason" : "1",
        "description" : "1",
        "order_id" : "11",
        "order" : "1"
    },
    "quantity_min" : "1",
    "quantity_inc" : "1",
}

Taxonomyterms集合:

{
    "_id" : 3,
    "date_created" : "2016-01-01T00:00:00Z",
    "date_updated" : "2016-01-01T00:00:00Z",
    "name" : "Computers",
    "slug" : "Computers",
    "description" : "Computers",
    "meta_description" : "Computers",
    "meta_keyword" : "Computers",
    "navigation" : "true",
    "top_id" : 3,
    "top" : "true",
    "parent_id" : 2,
    "parent" : "Default",
    "active" : "y",
    "productype" : "simple",
    "path" : "Computers",
    "categoryids" : "2,3",
    "children" : "yes",
}

分类学术语是指分类学。在第一个中,您可以定义主要名称,并在术语中定义与分类法(选项)有关系的术语。例如:分类:名称。分类术语:bob-jose-pedro

有没有人能够阐明我必须做些什么来处理与mongo中提议的集合模式的集成,以便在solr中进行设计:

  • 分类导航:使用导航导航在整个虚拟店面中的产品。
  • 分面:自动提取产品信息,使客户能够根据颜色,尺寸,品牌,当地可用性和价格进行过滤。

如何使用分类导航来映射类别。 如何将分类法术语与分面图进行映射。 solr是否为facet提供了一个设置配置区域?

或您认为可能更好的任何不同方法。

1 个答案:

答案 0 :(得分:1)

听起来这个电子商务应用程序是定制开发的,而不是托管在可能有Solr连接器的平台上,所以这需要学习很多关于Solr的知识,并且需要进行大量的自定义开发。这个搜索页面。

您的Solr Products集合至少需要包含以下字段:

  1. 产品ID (用于链接回应用程序,或查询mongo等...)
  2. 您需要搜索的所有文字(每个可搜索文本属性的字段,一个带有所有可搜索文本的“text_search”字段,或介于两者之间的内容。)
  3. 排序,过滤,评分(以及可选择显示)所需的所有产品属性/字段 - 您可以选择按产品ID查询mongo以检索每个搜索结果的显示信息。 / LI>
  4. 您需要进行构面计数的所有属性(多值)。这可能包括适用的 category_slugs taxonomy_terms 和产品属性,例如颜色,尺寸,品牌,local_availability和价格
  5. 将您的收藏视为搜索所需的所有产品(及相关)数据的旧式非规范/展平视图。

    (a)分类导航:整个虚拟店面中的产品,带有导航导航。

    查看Solr的Hierarchical Faceting页面

    (b) Faceting :自动提取产品信息,以便客户按颜色,尺寸,品牌,当地可用性和价格进行过滤。

    对于所请求的字段的所有值(显示在搜索结果中),

    Solr将generate facet counts。这意味着您需要为集合中的每个facet-able属性都有一个字段。你必须直接定义/映射这些。