2013-09-26 23 views
1

我在嘗試在Solr中進行查詢時遇到了一些麻煩。 問題是:我必須能夠檢索具有相同值的指定字段的文檔,但只有在此值對於指定用戶出現超過X次時才應該檢索它們。 在pseudosql它會是這樣的:Apache Solr - 作爲superquery參數的子查詢計數

select user_id from documents 
where my_field="my_value" 
and 
(select count(*) from documents where my_field="my_value" and user_id=super.user_id) > X 

我知道Solr的返回做出的每一次查詢「numFound」,但我不知道如何檢索子查詢此值。

我的Solr以用戶是文檔的方式組織,並且用戶的屬性(如姓名,年齡等)在另一個具有'root_id'字段的文檔中分組。 因此,讓我們假設以下查詢獲取其子項具有前綴「some_prefix」的所有根文檔。

is_root:true AND _query_:"{!join from=root_id to=id}requests_prefix:\"some_prefix\"" 

現在,我怎麼能得到具有比X孩子更匹配的根文件(用戶在某種意義上)「requests_prefix:‘some_prefix’」或任何其他條件? 這可能嗎?

P.S.它必須在單個查詢中完成,字段可以隨意添加,但根/子結構應該被保留(優先)。

回答

1

事實證明,Solr不符合我的需求,我最終使用ElasticSearch及其nativa父子映射。