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