2014-01-10 117 views
0

我在做phrase_prefix搜索'工程師',我在'技能'字段方面得到36項術語'工程'。接下來,我在「工程」的該方面字段上應用term filter,並在新的過濾結果中,現在該方面中的「工程」計數爲42.搜索結果和方面的結果不匹配

過濾後的查詢返回42個結果,並且每個結果都與方面匹配,也就是說,他們都包含「工程」作爲技能。

所以我希望非過濾查詢,這對於在「技能」方面的「工程」一詞有42計,但正如我上面提到的只是36

這裏的映射和查詢 https://gist.github.com/santiago/a249418e5bf7531ead85

我在這裏錯過了什麼?

謝謝

PD。

"facets": { 
    "skills": { 
     "terms": { 
     "field": "skills", 
     "size": 50 
     } 
    }, 

你會得到不準確的結果,而之所以增加:我使用的是0.90.5

+0

試試這個要點:https://gist.github.com/eire1130/44d18734503267c835b9運行兩次,一次使用過濾器位,一次沒有。 –

+0

同樣的結果。沒有過濾器,我看到工程36個計數,而添加過濾器顯示42. – sofrito

+0

下面是一些更好地說明情況: https://gist.github.com/santiago/ee65c9da0c6a5270dee0 查詢返回6個結果,這6個技能中的每一個都存在「Microsoft Word」,「Microsoft Office」和「English」技能。但從這些方面來看這些術語的數量。 'Microsoft Word'(5),'Microsoft Office'(5)和'English'(3) – sofrito

回答

0

在0.90.5,您可以通過增加小列表的大小得到你所期望的結果大小有助於在Elasticsearch docs on term facets解釋說:

尺寸參數定義了許多頂級的術語應該如何返回了整體來講名單 。默認情況下,協調 搜索過程的節點將要求每個分片提供其自己的最大尺寸條款 ,並且一旦所有分片響應,它將將結果減少到最終的 列表,然後將其發送回客戶端。這意味着如果 特殊字詞的數量大於大小,返回的列表是 稍微偏離並且不準確(可能是因爲術語計數爲 略微偏離,甚至可能是應該在 最大尺寸條目未返回)。

在0.9.6+,您可以在shard_size參數添加到面,它告訴它有多少項從每個碎片請求,結果組合成一個列表中。