solr - 在1:n连接上建模多个值

时间:2013-06-22 20:03:53

标签: search solr

我尝试使用solr wiki中的this示例来建模我的数据库。

我有一个名为item的表和一个名为feature,featureName,description

的表

这是更新的xml(添加的featureName)

<dataConfig>
<dataSource driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:/temp/example/ex" user="sa" />
<document>
    <entity name="item" query="select * from item">
        <entity name="feature" query="select description, featureName as features from feature where item_id='${item.ID}'"/>
    </entity>
</document>

现在我在xml元素中得到两个列表

<doc>
 <arr name="featureName">
  <str>number of miles in every direction the universal cataclysm  was  gathering</str>
  <str>All around the Restaurant people and things relaxed and chatted.  The</str>
  <str>- Do we have... - he put up a hand to hold back the cheers, -  Do  we</str>
 </arr>
 <arr name="description">
  <str>to a stupefying climax. Glancing at his watch, Max returned to  the  stage</str>
  <str>air was filled with talk of this and that, and with the mingled scents  of</str>
  <str>have a party here from  the  Zansellquasure  Flamarion  Bridge  Club  from</str> 
 </arr>
</doc>

但我想一起看清单(使用xml属性),这样我就不必加入值了。
有可能吗?

1 个答案:

答案 0 :(得分:1)

我想建议使用ScriptTransformer,它可让您根据需要灵活地更改数据,但由于它在行级别工作,因此无法在您的情况下使用。

您始终可以在SQL(example)中为字符串连接定义聚合函数,但是您可能会遇到性能问题。

如果您使用http/xml数据源,解决方案就是使用flatten属性。

然而,即使您最终使用多值字段,搜索功能也会按预期工作。缺点是在客户端,你将在表示层之前连接它们,如果你使用某种分页,这不是一个真正的问题。