Esempio n. 1
0
        private void RankDetail_Loaded(object sender, RoutedEventArgs e)
        {
            var resultItem = (ResultItem)DataContext;
            var parser     = new RankLogParser(resultItem.Xml);

            html = html.Replace("{RANKLOGXML}", HttpUtility.HtmlEncode(resultItem.Xml));

            for (int i = 0; i < 2; i++)
            {
                string docPropsKey        = "{DocProps" + (i + 1) + "}";
                string rankingFeaturesKey = "{RankingFeatures" + (i + 1) + "}";
                string valuesKey          = "{Values" + (i + 1) + "}";
                string docHitsKey         = "{DocHits" + (i + 1) + "}";
                if (parser.ScoreDetails[i] != null)
                {
                    var props = new DocProps
                    {
                        _ModelId       = parser.ScoreDetails[i].ModelId,
                        _Score         = parser.ScoreDetails[i].Score,
                        _OriginalScore = parser.ScoreDetails[i].OriginalScore,
                        _ModelType     = parser.ScoreDetails[i].ModelType
                    };

                    var  list = new List <RenderableRankingFeature>();
                    BM25 bm   = null;
                    foreach (RankingFeature feature in parser.ScoreDetails[i].RankingFeatures)
                    {
                        RenderableRankingFeature item = null;
                        if (feature is BM25)
                        {
                            bm   = (BM25)feature;
                            item = new RenderableBM25F(bm);
                        }
                        else if (feature is BucketedStatic)
                        {
                            item = new RenderableBucketedStatic((BucketedStatic)feature);
                        }
                        else if (feature is Dynamic)
                        {
                            item = new RenderableDynamicFeature((Dynamic)feature);
                        }
                        else if (feature is StaticRank)
                        {
                            item = new RenderableStaticFeature((StaticRank)feature);
                        }
                        else if (feature is MinSpan)
                        {
                            item = new RenderableMinSpan((MinSpan)feature);
                        }
                        if (item != null)
                        {
                            list.Add(item);
                        }
                    }
                    props._iExternalDocId = bm.ExternalDocId;
                    props._iInternalDocId = bm.InternalDocId;

                    props._Language = resultItem.Language;
                    if (i == 0)
                    {
                        props._Title = resultItem.Title;
                        props._Path  = resultItem.Path;
                    }

                    ReplaceDocumentProperties(docPropsKey, props);

                    var ft = new RankingFeatures {
                        _RankingFeatures = list
                    };
                    ReplaceDocumentProperties(rankingFeaturesKey, ft);

                    var values = new RankValuesList();
                    values._bm25Feature = new RenderableBM25F(bm);
                    ReplaceDocumentProperties(valuesKey, values);

                    var docHits = new RankDocHitList();
                    docHits._bm25Feature = new RenderableBM25F(bm);
                    ReplaceDocumentProperties(docHitsKey, docHits);
                }
                else
                {
                    html = html.Replace(docPropsKey, "");
                    html = html.Replace(rankingFeaturesKey, "");
                    html = html.Replace(valuesKey, "");
                    html = html.Replace(docHitsKey, "");
                }
            }

            htmlControl.NavigateToString(html);
        }
Esempio n. 2
0
 internal BM25Helper(BM25 bm25)
 {
     this.bm25 = bm25;
 }
 public BM25Formatter(BM25 bm25)
 {
     BM25Feature = bm25;
 }