2016-10-22 60 views
0

我有一個允許多值字段的模式,我該如何構建一個只返回在該字段中有兩個或多個條目的文檔的搜索?例如,在數據的這個子集:如何搜索Solr中多值字段中有兩個或多個條目的文檔?

<doc> 
<str name="id">A</str> 
<arr name="multivaluedField"> 
    <str>One</str> 
    <str>Two</str> 
</arr></doc> 

<doc> 
<str name="id">B</str> 
<arr name="multivaluedField"> 
    <str>One</str> 
</arr></doc> 

<doc> 
<str name="id">C</str> 
<arr name="multivaluedField"> 
    <str>Three</str> 
    <str>Four</str> 
</arr></doc> 

的搜索將返回文檔A和C只因爲它們在MultivaluedField 2項,即使它們是不同的條目。

回答

2

最簡單(也是最有效)的方法是將包含值計數的整數值與現有值一起索引,因此您有一個multiValued_count字段。此字段可以編入索引,您可以執行有效範圍查詢和精確值查找。

如果需要,您可以直接在索引代碼中或在更新處理器中執行此操作。

+0

我想我會用這個解決方案,不知道爲什麼我沒有想過之前,謝謝 –