Elasticsearch 的相似度算法 被定義爲檢索詞頻率/反向文檔頻率, TF/IDF ,包括以下內容:
檢索詞頻率
檢索詞在該字段出現的頻率?出現頻率越高,相關性也越高。 字段中出現過 5 次要比只出現過 1 次的相關性高。
反向文檔頻率
每個檢索詞在索引中出現的頻率?頻率越高,相關性越低。檢索詞出現在多數文檔中會比出現在少數文檔中的權重更低。
字段長度準則
字段的長度是多少?長度越長,相關性越低。 檢索詞出現在一個短的 title 要比同樣的詞出現在一個長的 content 字段權重更大。
public void Explain() { client.Search<employee>(s => s.Query(q => q.ConstantScore(c => c.Filter(f => f.Term(t => t.Field("age").Value("26") )))) .Sort(so => so.Descending("last_name") ) .Pretty().Explain()); var response = client.Explain<employee>("f90209f0-406b-4a0d-a9fb-8e2d6193dcdb",s => s.Query( q => q.Match(m => m.Field(f => f.last_name).Query("陳")) ).Pretty()); }