static DefaultSimilarity() { for (int i = 0; i < 256; i++) { NORM_TABLE[i] = SmallFloat.Byte315ToFloat((sbyte)i); } }
static BM25Similarity() { for (int i = 0; i < 256; i++) { float f = SmallFloat.Byte315ToFloat((sbyte)i); NORM_TABLE[i] = 1.0f / (f * f); } }
/// <summary> /// 得到文档某字段的Norm /// </summary> /// <param name="reader"></param> /// <param name="field"></param> /// <param name="docId"></param> /// <returns></returns> public static float GetNorm(IndexReader reader, string field, int docId) { return(SmallFloat.Byte315ToFloat(reader.Norms(field)[docId])); }