問題原因:es索引是分片儲存的,查詢計算評分的時候,是每個分片單獨計算的,所以會出現相同名稱的人員評分不同的問題、
解決方案:
1、與產品溝通,當資料量足夠大時,每個分片資料近似相同,則各個分片計算出來的評分會很相近
2、查詢的時候增加查詢條件(dfs_query_then_fetch),不讓各個分片單獨計算得分,而是統一計算,這樣會有一定的效能影響,官方文件也不建議這麼做
searchrequest.searchtype("dfs_query_then_fetch");
put /test2
, "test2": }}
]}
}}post /test2/_bulk}}
}}}}
get /test2/_search?search_type=dfs_query_then_fetch
} ]
}}}
ES按名稱查詢資料時,相同名稱的資料評分不同問題
問題背景 我在做es查詢人員資訊的時候,按照人員姓名模糊查詢,需要按照匹配度降序排序,並按照年齡降序排序 問題現象 相同名稱的人員,比如馬雲,匹配度不同,導致展示的時候,年齡小的馬雲卻排在了年齡大的馬雲之前,因為年齡小的馬雲評分高 問題原因 es索引是分片儲存的,查詢計算評分的時候,是每個分片單獨計...
呼叫相同名稱的基函式!
123 4567 8910int main 注意,當你在派生類中重新定義乙個函式,匯出函式不繼承訪問說明符的函式具有相同的名稱在基類。它使用任何訪問說明符是在派生類中定義的。因此,在基類中定義為私有的函式可以在派生類中重新定義為公,或者反之亦然!新增到現有的功能 有時我們不想完全替換基類的功能,但要...
實現按名稱遞迴查詢控制項的方法WinForm
關鍵 如下 向下遞迴查詢控制項 查詢控制項的父容器控制項 查詢控制項名稱 若沒有查詢到返回null public static control downrecursivefindcontrol this control parentcontrol,string findctrlname else r...