使用Solr搜索多个数据库表

时间:2013-10-23 21:25:48

标签: solr

我在数据库中有大约40个表,我们计划使用Solr进行搜索。因此,当用户输入搜索时,他们可以选择一些或所有表来搜索数据。这40张表彼此无关。我尝试在单个表上搜索并且它工作得很好但我不清楚如何在Solr中处理上述场景。非常感谢任何想法。

2 个答案:

答案 0 :(得分:1)

您可以将表名添加到solr架构。

例如,添加一个字段表:

<field name="table" type="string" indexed="true" stored="stored" multiValued="false"/>

现在你可以选择在桌子上进行分面:

&fq=table:(users OR log)

您需要存储值,以了解哪些表格来自哪些,并确定结果的流程策略。

我认为这是一种合理的方法。

答案 1 :(得分:1)

您忘了解释如何将表名存储到创建的“表”字段中。

这就是我在寻找的东西:

TemplateTransformer :可用于覆盖或修改任何现有的Solr字段...分配给该字段的值基于静态模板字符串。 .. Solr Wiki

数据-config.xml中

<entity name="Books" transformer="TemplateTransformer">
  <!-- other fields -->
  <field column="Table" template="Books"/>
</entity>

<entity name="Movies" transformer="TemplateTransformer">
  <!-- other fields -->
  <field column="Table" template="Movies"/>
</entity>

<强> schema.xml中

<field name="Table" type="string" indexed="true" stored="true" multiValued="false"/>