0

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

4

2 回答 2

1

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

例如添加一个字段表:

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

现在您可以选择在表格上刻面:

&fq=table:(users OR log)

您需要存储值,了解来自哪个表的内容并决定结果的处理策略。

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

于 2013-10-23T21:30:54.703 回答
1

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

这就是我一直在寻找的:

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

数据配置.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>

架构.xml

<field name="Table" type="string" indexed="true" stored="true" multiValued="false"/>
于 2015-07-24T12:50:15.580 回答