3
再次.. 我有2個表格'博客'和'評論'。博客可以包含n條評論(博客 - 1:n--評論)。到目前爲止我用下面的選擇將數據插入到Solr的指標:Solr - 具有多個值的嵌套實體
<entity name="blog" dataSource="mssqlDatasource" pk="id"
transformer="ClobTransformer"
query="SELECT b.id, b.market, b.title AS blogTitle, b.message AS
blogMessage, c.message AS commentMessage, c.secondColumn
FROM blog b LEFT JOIN comment c ON b.id = c.source_id
AND c.source_type = 'blog'">
<field column="blogMessage" name="blogMessage" clob="true" />
<field column="commentMessage" name="commentMessage" clob="true" />
</entity>
索引結果如下:
<doc>
<str name="id">1</str>
<str name="market">12</str>
<str name="title">blog of title 1</str>
<str name="blogMessage">message of blog 1</str>
<str name="commentMessage">message of comment</str>
<str name="scondColumn">Im the second column from comment</str>
</doc>
<doc>
<str name="id">1</str>
<str name="market">12</str>
<str name="title">blog of title 1</str>
<str name="blogMessage">message of blog 1</str>
<str name="commentMessage">message of comment - Im the second comment</str>
<str name="scondColumn">Im the second column from comment</str>
</doc>
我會說這是愚蠢的,因爲我得到了太多的索引數據相同的博客只是評論是不同的。是否可以將'註釋'設置爲'subentity',如下所示:
<entity name="blog" dataSource="mssqlDatasource" pk="id"
transformer="ClobTransformer"
query="SELECT b.id, b.market, b.title AS blogTitle, b.message AS
blogMessage
FROM blog b">
<field column="blogMessage" name="blogMessage" clob="true" />
<entity name="comment" dataSource="mssqlDatasource" pk="id"
transformer="ClobTransformer"
query="SELECT c.message as commentMessage, c.secondColumn
FROM comment c
WHERE c.source_id = ${blog.id}">
<field column="commentMessage" name="commentMessage" clob="true" />
</entity>
</entity>
這可能嗎?結果如何(直到星期一才能測試)?