我的数据库上有一个产品表,还有一个包含此产品功能的表。 features表有3列:id,type和value。 Id是产品的外键。 我桌子上的数据示例: 表产品:
ID |说明|
01电脑A
02车
03计算机B
表格特征:
ID |输入|价值|
01处理器Phenom X3
01记忆2GB
01 HDD 500GB
02 Color Blue
02 Mark Ford
03处理器Phenom X3
03记忆3GB
我想要最好的方法来索引它,所以,例如,当有人搜索“计算机”时,分面显示:
Phenom X3(2)
内存2GB(1)
内存3GB(1)
HDD 500GB(1)
依此类推,与查询字符串相关。如果我使用字符串“processor”进行查询,只有当这些产品(描述中带有“处理器”)具有像Processor:Phenom X3这样的功能时,它才会列出Phenom X3(1)。有很多产品类型,因此我们无法为所有功能创建静态colums并将其传递给Solr ... 我希望我的问题很清楚,提前谢谢!
答案 0 :(得分:0)
使用数据导入处理程序索引数据@ http://wiki.apache.org/solr/DataImportHandler
您可以将产品表定义为主要实体,将功能定义为子实体。因此,将具有要素的产品编入索引为单个文档。
索引 - 将描述字段定义为索引为true 如果您想要类型和值的facet,您可以使用类型字符串定义新字段type_value并在dataconfig.xml中连接类型和值字段 type_value将是一个多值字段。
搜寻 -
使产品描述字段可搜索,例如Q =描述:计算机
您可以在solrconfig.xml中使用适当的权重配置它
将要素字段定义为构面字段和facet.field = type_value
我希望这会给出一个公平的想法。