示例#1
0
        public Explanation Explain(BaristaIndexDefinition indexDefinition, Barista.Search.Query query, int docId)
        {
            var         lQuery = Barista.Search.Query.ConvertQueryToLuceneQuery(query);
            Explanation explanation;

            var           index = GetOrAddIndex(indexDefinition, true);
            IndexSearcher indexSearcher;

            using (index.GetSearcher(out indexSearcher))
            {
                var lexplanation = indexSearcher.Explain(lQuery, docId);
                explanation = Explanation.ConvertLuceneExplanationToExplanation(lexplanation);
            }

            return(explanation);
        }
示例#2
0
        public string Highlight(BaristaIndexDefinition indexDefinition, Barista.Search.Query query, int docId, string fieldName, int fragCharSize)
        {
            var highlighter = GetFastVectorHighlighter();
            var lQuery      = Barista.Search.Query.ConvertQueryToLuceneQuery(query);

            var    fieldQuery = highlighter.GetFieldQuery(lQuery);
            string highlightedResult;

            var           index = GetOrAddIndex(indexDefinition, true);
            IndexSearcher indexSearcher;

            using (index.GetSearcher(out indexSearcher))
            {
                highlightedResult = highlighter.GetBestFragment(fieldQuery, indexSearcher.IndexReader,
                                                                docId,
                                                                fieldName,
                                                                fragCharSize);
            }

            return(highlightedResult);
        }