2012-01-11 97 views
0

我有一个拥有数百万文档的SOLR实例。模式已经很好定义(即所有字段都是键入的)。所有的搜索/刻面等工作正常,没有任何问题。SOLR分析查询

但是,我试图做一些新的事情,我认为在当前版本中不支持。我在使用Jetty的Windows上运行SOLR 3.5。

为了简化问题,我的文档中包含像一些字段:

标识, 名称, 市 JOBTITLE

可以说让我有这样一个简单的数据: 普木,伦敦,导演 Ĵ史密斯,伦敦,项目经理 d锁,布莱顿,开发 ķPracy,伦敦,开发

例如起见,假设这是一个马让人们可以找到彼此的配料系统。还假定Id是唯一的ID。

我想写一个“采样”查询,它应该找到我的记录集,以匹配任何标准的其他记录。

因此,举例来说,我希望定义一个标准,如:

找我,谁将会匹配在不同城市的人differfent职称的人:如果上面的架构是一个RDBMS-SQL表

(可以说人),近似查询将是这样的:

 
SELECT P.Id, 
    (
     SELECT COUNT(1) 
     FROM People PI Where PI.Id != P.Id 
     AND PI.City != P.City 
     AND PI.JobTitle != P.JobTitle 
    ) AS FindCount 
FROM 
People P 

好了,查询可能不会是可行的,但你的想法。无论如何,还有其他一些要求,即Findcount应该大于x且小于y。

有人可以让我知道,如果这可能在SOLR或如果这不是为SOLR的意思。我知道SOLR 4有一个Join运算符,但在我看来,这更像是一个限制使用的IN子句。例如,考虑我想在上面的查询中找到匹配的Id,而不是计数。

所有帮助表示赞赏。

感谢, IMMI

回答

1

我不认为这是在1个查询可行的,你可能最终与运行的“内选择”作为单独的查询每个人