如何在 Solr 中“复制”数据库结构?
是否schema.xml
仅代表一种实体类型?像汽车或客户等?
如何声明 Car和Costumer 的结构?
有一个数据类型type
的字段string
。在索引时,将值设置为car
or customer
。因此,如果您想购买红色雨燕:
q=red+swifts&fq=type:car
solr 模式是一个巨大的(并且占用很少的)表。因此,如果您的 Db 有一个car
包含 20 列和 12500 个条目的customer
表和一个包含 30 列和 12500 个条目的表,那么您的 solr 核心包含 25000 个条目和 50 个字段。是的,考虑到 Solr 的索引策略,它的效率甚至比关系数据库还要快。
如果您维护两个实体都拥有的字段并仍然查询它们,则 solr 将允许您将两个实体一起索引。
但是,如果您想与实体建立关系,Solr 确实提供了一个Join功能,虽然有限(正如我上次检查过的那样),但您可以使用关系进行查询。进一步检查加入,你会发现它的新发展。
不,你不能。Solr 是一种 Nosql,与 RDBMS 不同。在 RDBMS 中,表是有关系的,您可以执行连接操作将它们连接在一起,或者从视图中获取数据。但在 solr 中,您根本无法执行连接操作。一个 solr 查询只能在一个核心上执行。所以你不能简单地从 RDBMS 复制结构,你必须为 solr 重新设计你的模式。