【问题标题】:Decide Solr facet names from dynamic fields从动态字段中确定 Solr 方面名称
【发布时间】:2013-08-13 01:55:57
【问题描述】:

我在创建一个网络应用程序之后,我必须使用动态字段来创建构面,类似于 pricegrabber.com。

我不确定 pricegrabber 是否决定构面名称或出版商?我们如何决定在微波http://www.pricegrabber.com/appliances/microwave-ovens/p-528/ 的情况下会有一个“颜色”方面,在等离子/液晶显示器http://www.pricegrabber.com/electronics/plasma-lcd-televisions/p-197/ 的情况下会有一个“分辨率”方面

处理这种情况最简单的方法是什么?

【问题讨论】:

  • 当你说动态字段时,你的意思是像this吗?
  • @Srikanth,是的,没错!

标签: solr lucene faceted-search


【解决方案1】:

这是一种方法。为每个产品分配一个类别,为每个类别分配一组属性。 (类别到属性的映射可以存储在 Solr 之外的某个地方,例如,在数据库中。)

属性是您的动态字段 - 下面是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 所做的。)当然,价格总是可用的,因此您可以在所有搜索中始终使用它。

【讨论】:

  • 非常感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 2014-06-13
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
相关资源
最近更新 更多