2017-05-31 34 views
0

開始的狀態:Azure搜索:返回每個方面的頂部文檔

我創建了一個帶有多個字段的索引,其中的一個字段是可見的。 通過在此特定字段上設置方面對索引我執行的搜索查詢進行索引後。返回的結果匹配所需的行爲,一切工作正常。

不一定要返回與搜索詞相匹配的所有結果。因此,我將「$ top」參數設置爲50,只返回前50個結果。但是,如果第一個方面包含超過50個結果,則其他所有方面都不會因此而返回。

我的問題是: 有沒有辦法爲每個方面設置「$ top」參數?或者有其他方法來限制每個方面的結果數量? 例如,只返回每個方面的前5個文檔。

有沒有解決這個問題的方法?或者有沒有一種方法來達到理想的行爲?

希望有人可以提供幫助。

在此先感謝!

回答

0

當然, 你可以這樣做: 一面:「富」,排序:值(或計數),計數:5(或任何你想要的值)

爲了您的面查詢「數」是多少你想獲得項目,並通過與排序相結合,你可以得到你的解決方案

You will find more detailed information here

+0

首先,感謝您的回答。 但它並沒有解決我的問題。 「facet:」foo「,count:5」只返回按任意順序排列的五個「最高排名」方面。 但是我想要得到所有方面的結果,這些方面中的每一個應該包含這個特定方面的前五個結果。 我不想限制返回的構面的數量,我想限制每個構面的結果文檔的數量。 希望它現在更容易理解 – maxhoefler

+0

比唯一的方法是做到這一點(至少現在)是有多個查詢。 您最初可以發送請求0結果的查詢,但僅查詢方面,並根據您收到的數據發送後續查詢。 這裏是我試圖提供一個更好的例子... 如果這是一個SQL查詢,你的方面將是你的WHERE的GROUP BY,在你的結果的一個單獨的段。你可以從那裏做的唯一的事情是發送更多的請求基於上述分段 –

+0

我有同樣的想法,可惜它不是一個選項,由於性能問題。 – maxhoefler