数据未在ajax solr中编入索引

时间:2013-12-29 09:14:04

标签: mysql solr lucene

我正在使用solr从我当地的MYSQL数据库中索引我的数据。

  • data-config.xml包含我的实体信息,如下所示:

    <entity name="distinctWeeksVolumeEntity" dataSource="mysqlLocal" rootEntity="false" query="select week as distinctWeeksVolume, count(`distinct` tweetid) as weeklyTweetVolume from twitter.tweetbisect tb group by week" transformer="TemplateTransformer">
                    <field column="distinctWeeksVolume" template="distinctWeeksVolumeEntity" />
                    <field column="weeklyTweetVolume" template="distinctWeeksVolumeEntity" />   </entity>
    
  • schema.xml包含信息

    <field name="distinctWeeksVolume" type="string" indexed="true" stored="true" /> 
    <field name="weeklyTweetVolume" type="int" indexed="true" stored="true" />
    

当我进入solr admin的dataimport并执行import时,我收到以下消息

    Indexing completed. Added/Updated: 0 documents. Deleted 0 documents.
    Requests: 1, Fetched: 3, Skipped: 0

我使用完全导入并使用提交选项true

为什么我无法索引数据? 请帮助...

1 个答案:

答案 0 :(得分:0)

IMO,在此用例中您不需要TemplateTransformer

您可以使用data-config看起来像

<entity name="distinctWeeksVolumeEntity" dataSource="mysqlLocal" rootEntity="false" query="select week as distinctWeeksVolume, count(`distinct` tweetid) as weeklyTweetVolume from twitter.tweetbisect tb group by week">
</entity>

由于您的select查询获取的命名字段与Solr Schema完全相同,因此您甚至不需要在`entity。下指定field

但是,如果您必须使用TemplateTransformer,请尝试以下操作:

<entity name="distinctWeeksVolumeEntity" dataSource="mysqlLocal" rootEntity="false" query="select week as distinctWeeksVolume, count(`distinct` tweetid) as weeklyTweetVolume from twitter.tweetbisect tb group by week" transformer="TemplateTransformer">
                <field column="distinctWeeksVolume" template="${distinctWeeksVolumeEntity.distinctWeeksVolume}" />
                <field column="weeklyTweetVolume" template="${distinctWeeksVolumeEntity.weeklyTweetVolume}" />   </entity>

这似乎效率很低,恕我直言。

详细了解TemplateTransformer here