如何索引Solr中的列之类的行

时间:2011-10-04 18:36:11

标签: solr indexing rows

我的数据库上有一个产品表,还有一个包含此产品功能的表。 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 ... 我希望我的问题很清楚,提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用数据导入处理程序索引数据@ http://wiki.apache.org/solr/DataImportHandler

您可以将产品表定义为主要实体,将功能定义为子实体。因此,将具有要素的产品编入索引为单个文档。

索引 - 将描述字段定义为索引为true 如果您想要类型和值的facet,您可以使用类型字符串定义新字段type_value并在dataconfig.xml中连接类型和值字段 type_value将是一个多值字段。

搜寻 - 使产品描述字段可搜索,例如Q =描述:计算机
您可以在solrconfig.xml中使用适当的权重配置它

将要素字段定义为构面字段和facet.field = type_value

我希望这会给出一个公平的想法。