2013-10-08 100 views
1

說我有一個文檔以下字段:Solr的篩選查詢 - 必須擁有所有匹配

<str name="groupId">1000 1001 1002</str> 

我希望能夠在組id的列表,通過用戶在作爲過濾器查詢只需將文檔中的用戶擁有的groupIds全部匹配到文檔中 - 如果文檔中存在用戶不在的groupid,則不會返回文檔。如果在查詢中存在不在文檔中的groupId,那麼將忽略 - 用戶可以屬於比doc更多的組。但用戶必須在文檔中指定的所有groupIds中,否則他們無權查看它。

這可能嗎?

[更新]

現在我已經加入我的多值字段,看起來像這樣:

<arr name="groupId"> 
    <str>1000</str> 
    <str>1001</str> 
    <str>1002</str> 
</arr> 

我怎樣才能確保與用戶組的用戶1000,1001,1002,1003獲取文檔但具有組1000,1002,1003的用戶不會因爲他們缺少組1001嗎?

回答

1

是的,你可以做到這一點。我建議將這些groupId值存儲在模式的multiValued字段中。請參閱一些很好的指導下使用多值字段

一旦這些存儲在一個多值字段,你可以發出一個過濾器查詢,你說只返回所有指定的groupIds關聯的文檔。

+1

我現在有我的groupId作爲multiValue字段。我如何製作,以便存儲的ID匹配? – iwayneo