我在创建一个网络应用程序后,我将不得不使用动态字段来创建facet,smilimar到pricegrabber.com。
我不确定pricegrabber是否决定方面名称或发布者?我们如何确定在微波炉http://www.pricegrabber.com/appliances/microwave-ovens/p-528/和“等离子/液晶显示器”的“分辨率”方面会有“颜色”方面http://www.pricegrabber.com/electronics/plasma-lcd-televisions/p-197/
处理此类情况的最简单方法是什么?
答案 0 :(得分:1)
这是一种方法。为每个产品分配一个类别,为每个类别分配一组属性。 (属性映射的类别可以存储在Solr之外的某个位置,例如,存储在DB中。)
属性是您的动态字段 - property_*
如下。例如:
{
product_name: Brand A 3 Cu. ft. microwave,
category: 1,
price: 45.35,
property_color: Red,
property_capacity_cu_ft: 3,
property_brand: Brand A
},
{
product_name: Brand B 45 inch plasma TV,
category: 2,
price: 4500.35,
property_resolution: 1920 x 1200,
property_aspect_ratio: Widescreen,
property_brand: Brand B
}
另外,为每个自动推荐关键字指定一个类别。例如,microwave oven
可以映射到category
1.当有人搜索microwave oven
时,您会提取其所属类别的属性,即
color
capacity_cu_ft
brand
并形成您的查询,如:
q=microwave%20oven&facet=true&facet.query=property_color&facet.query=property_capacity_cu_ft&facet.query=property_brand
(这里你可能想要为capacity_cu_ft设置范围。)
如果用户要搜索不在您的自动推荐字典中的字词,那么您最好的选择是实际上对类别本身进行分析。 (猜猜这就是pricegrabber所做的。)当然,价格总是可用的,所以这是你可以随时用于所有搜索的一个方面。