Beispiel #1
0
        public void MoreLikeThisHandler()
        {
            var solr = ServiceLocator.Current.GetInstance <ISolrOperations <Product> >();

            solr.Delete(SolrQuery.All);
            solr.Commit();
            AddSampleDocs();
            var mltParams = new MoreLikeThisHandlerParameters(new[] { "cat", "name" })
            {
                MatchInclude = true,
                MinTermFreq  = 1,
                MinDocFreq   = 1,
                ShowTerms    = InterestingTerms.List,
            };
            var q       = SolrMLTQuery.FromQuery(new SolrQuery("id:UTF8TEST"));
            var results = solr.MoreLikeThis(q, new MoreLikeThisHandlerQueryOptions(mltParams));

            Assert.Equal(2, results.Count);
            Assert.NotNull(results.Match);
            Assert.Equal("UTF8TEST", results.Match.Id);
            Assert.True(results.InterestingTerms.Count > 0);
            foreach (var t in results.InterestingTerms)
            {
                Console.WriteLine("Interesting term: {0} ({1})", t.Key, t.Value);
            }
        }
Beispiel #2
0
        public void MoreLikeThisHandler()
        {
            var mltParams = new MoreLikeThisHandlerParameters(new[] { "cat", "name" })
            {
                MatchInclude = true,
                MinTermFreq  = 1,
                MinDocFreq   = 1,
                ShowTerms    = InterestingTerms.List,
            };
            var q       = SolrMLTQuery.FromQuery(new SolrQuery("id:UTF8TEST"));
            var results = solr.MoreLikeThis(q, new MoreLikeThisHandlerQueryOptions(mltParams));

            Assert.AreEqual(2, results.Count);
            Assert.IsNotNull(results.Match);
            Assert.AreEqual("UTF8TEST", results.Match.Id);
            Assert.That(results.InterestingTerms.Count, Is.GreaterThan(0));
        }
Beispiel #3
0
        /// <summary>
        /// Serializes More Like This handler specific parameters
        /// </summary>
        /// <param name="mlt"></param>
        /// <returns></returns>
        public IEnumerable <KeyValuePair <string, string> > GetMoreLikeThisHandlerParameters(MoreLikeThisHandlerParameters mlt)
        {
            if (mlt.MatchInclude != null)
            {
                yield return(KV.Create("mlt.match.include", mlt.MatchInclude.Value.ToString().ToLowerInvariant()));
            }

            if (mlt.MatchOffset != null)
            {
                yield return(KV.Create("mlt.match.offset", mlt.MatchOffset.Value.ToString()));
            }

            if (mlt.ShowTerms != null)
            {
                yield return(KV.Create("mlt.interestingTerms", mlt.ShowTerms.ToString().ToLowerInvariant()));
            }

            foreach (var p in GetMoreLikeThisParameters(mlt))
            {
                yield return(p);
            }
        }
Beispiel #4
0
 /// <summary>
 /// Query options for MoreLikeThis handler
 /// See http://wiki.apache.org/solr/MoreLikeThisHandler
 /// </summary>
 public MoreLikeThisHandlerQueryOptions(MoreLikeThisHandlerParameters parameters)
 {
     Parameters = parameters;
 }
 /// <summary>
 /// Query options for MoreLikeThis handler
 /// See http://wiki.apache.org/solr/MoreLikeThisHandler
 /// </summary>
 public MoreLikeThisHandlerQueryOptions(MoreLikeThisHandlerParameters parameters) {
     Parameters = parameters;
 }