2016-11-15 195 views
0

我正在爲Elasticsearch中的自定義分數提升提供解決方案。「function_score」的性能

我想問問,如果使用function_score是一個好主意。由於索引大小很大,但查詢的結果不應該那麼大。

function_score是否可以處理查詢結果或作爲查詢邏輯的一部分?如果是前者,它可能會很快,是嗎?

PS。最初查詢boost運營商似乎是一個最好的選擇,但我不能讓它得分遠高於match之一的正常範圍。我檢查了_explain API,它說queryNorm正常化我的提升,我仍然得到低於正常範圍(0.1 .. 4)的值。

回答

1

原則上 - 是的,它會減慢搜索的性能。當然,真正的懲罰將取決於腳本的複雜性。它將在所謂的「搜索」階段工作,所以它意味着它將適用於所有匹配的文檔。

如果您的案例適合重新調整功能,您可以嘗試使您的邏輯更快,因爲它僅適用於頂部N(可在rescore API中配置)結果。

有關rescoring的更多信息 - https://www.elastic.co/guide/en/elasticsearch/guide/current/_improving_performance.html#rescore-api