2012-01-11 122 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個查詢可行的,你可能最終與運行的「內選擇」作爲單獨的查詢每個人