对于一个快速项目(不是家庭作业,我保证!),我有一个简单的 solr 安装,它有两个核心,“人”和“工作”。每个都有一些结构化数据,还有一个文本字段。
我想使用 people.text 查询 jobs.text 进行查询。
我找不到这方面的示例,而且 SolrQuerySyntax 页面没有引用集合或核心。
没有用于使用真正“连接”的字段。
这可能吗?你能给我指一个例子/教程吗?
谢谢。
最佳答案
Solr 连接可以跨核执行。引用this关于如何操作的 StackOverflow 帖子。
但是除了那个帖子之外还有一件事,Solr-Wiki说:
Solr Joins are not actually joins (in SQL terms), but a way of Inner Query.
考虑到您的场景,我假设这两个核心(“人”和“工作”)有一个公共(public)字段,您可以在该字段上执行“加入”操作。我们称它为“id”。
通过 Solr Join,您将能够获得包含来自“人”或“工作”的字段但不是来自两个核心字段的合并的结果文档。
因此,它实际上是一个
- 内部查询
select peopleField1, peopleField2 from people where people.id = jobs.id
or
select jobField1, jobField2 from people where people.id = jobs.id
而不是
- 加入
select peopleField1, peopleField2, jobField1, jobField2 from people, join where people.id = jobs.id
关于Solr 'join' 使用文本字段(来自另一个集合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299500/