日期:2014-05-17  浏览次数:20710 次

请教一个solr的问题
大家好,假设我有这样一个需求,有一张family表,里面有id, name, age三个字段,表示家庭一员的ID、姓名和年龄,其中每个人都可以有0个或者多个玩具,在另一张表toys中记录,toys有三列:ID、familyid, toyname表示数据库行ID、家庭成员ID和玩具名称。

下面是我编写的data-config:

<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="mysql" password="123456"/>
    <document>
        <entity name="family" query="select * from family" >
            <field name="id" column="ID"/>
            <field name="name" column="name" />
            <field name="age" column="age" />
            <entity name="toys" query="select * from toys where familyid='${family.ID}'" >
                <field name="toyname" column="toyname"/>
            </entity>
        </entity>
    </document>
</dataConfig>

我在表family中插入一行:
------------------------------
1        myname        25
------------------------------
然后在toys表中加入2行:
------------------------------
1        1        布娃娃
------------------------------
2        1        玩具车
------------------------------
也就是说myname这个人有两个玩具,分别是布娃娃和玩具车。
导入到solr后正常,但是搜索的时候,我输入的name是myname,的确搜索出来了myname这个人,但是显示myname只有一个玩具。
如何实现我的需求啊?
------解决方案--------------------
配置上没发现问题,在mysql命令行窗口执行一下select * from toys where familyid=1,看看是不是数据库数据数据有问题。