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