Caching 具有多个键的Solr DataImportHandler缓存

Caching 具有多个键的Solr DataImportHandler缓存,caching,indexing,solr,dataimporthandler,Caching,Indexing,Solr,Dataimporthandler,我正在尝试使用Solr DataImportHandler对数据库中的数据进行索引。该数据库包含由一个类定义的具有多个功能的产品,以及以下相关表: product表包含一个PKproduct\u id和一个FKclass\u id product\u feature表包含一个主键(product\u id&feature\u id) class\u feature表包含一个主键(class\u id&feature\u id) 对于每个产品,我需要为多个产品功能编制索引,对于每个产品,我需要

我正在尝试使用Solr DataImportHandler对数据库中的数据进行索引。该数据库包含由一个类定义的具有多个功能的产品,以及以下相关表:

  • product
    表包含一个PK
    product\u id
    和一个FK
    class\u id
  • product\u feature
    表包含一个主键(
    product\u id
    &
    feature\u id
  • class\u feature
    表包含一个主键(
    class\u id
    &
    feature\u id
对于每个
产品
,我需要为多个
产品功能
编制索引,对于每个产品,我需要为多个
类功能
编制索引。我还需要缓存子实体以提高性能。配置中的实体定义如下所示:

<entity name="product" query="select product_id, class_id, ... from product">
  ...
  <entity name="product_feature" query="select product_id, feature_id, ... from product_feature"
      cacheImpl="SortedMapBackedCache" cacheKey="product_id" cacheLookup="product.product_id">
    ...
    <entity name="class_feature" query="select class_id, feature_id, ... from class"
        cacheImpl="SortedMapBackedCache" where="class_id=product.class_id AND feature_id=product_feature.feature_id">
      ...
    </entity>
  </entity>
</entity>

...
...
...
请注意,在最里面的实体
class\u功能
中,我定义了一个
属性,其中
属性匹配两个FK,一个在最外面的
产品
上,另一个在直接父
产品
上。这似乎不起作用。我必须如何定义实体缓存以匹配多个键