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
        /// <summary>
        /// Executes a MoreLikeThis handler query
        /// </summary>
        /// <param name="q"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public SolrMoreLikeThisHandlerResults <T> Execute(SolrMLTQuery q, MoreLikeThisHandlerQueryOptions options)
        {
            var param = GetAllMoreLikeThisHandlerParameters(q, options).ToList();
            var r     = connection.Get(MoreLikeThisHandler, param);
            var qr    = mlthResultParser.Parse(r);

            return(qr);
        }
Beispiel #3
0
        public async Task <SolrMoreLikeThisHandlerResults <T> > ExecuteAsync(SolrMLTQuery q, MoreLikeThisHandlerQueryOptions options, CancellationToken cancellationToken = default(CancellationToken))
        {
            var param = GetAllMoreLikeThisHandlerParameters(q, options).ToList();
            var r     = await connection.GetAsync(MoreLikeThisHandler, param, cancellationToken);

            var qr = mlthResultParser.Parse(r);

            return(qr);
        }
Beispiel #4
0
        public async Task <SolrMoreLikeThisHandlerResults <T> > ExecuteAsync(SolrMLTQuery query, ISolrQueryBody body,
                                                                             MoreLikeThisHandlerQueryOptions options,
                                                                             CancellationToken cancellationToken = default(CancellationToken))
        {
            var param          = GetAllMoreLikeThisHandlerParameters(query, options).ToList();
            var serializedBody = body?.Serialize() ?? String.Empty;
            var r = await connection.PostStreamAsync(MoreLikeThisHandler, body?.MimeType ?? MediaTypeNames.Text.Plain,
                                                     new MemoryStream(Encoding.UTF8.GetBytes(serializedBody)), param);

            var qr = mlthResultParser.Parse(r);

            return(qr);
        }
Beispiel #5
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 #6
0
 public SolrMoreLikeThisHandlerResults <T> MoreLikeThis(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     return(basicServer.MoreLikeThis(query, options));
 }
Beispiel #7
0
 public SolrMoreLikeThisHandlerResults <T> MoreLikeThis(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     return(PerformOperation(operations => operations.MoreLikeThis(query, options)));
 }
Beispiel #8
0
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options, CancellationToken cancellationToken = default(CancellationToken))
 {
     SetLastOperation();
     return(Task.FromResult <SolrMoreLikeThisHandlerResults <T> >(null));
 }
Beispiel #9
0
 public SolrMoreLikeThisHandlerResults <T> MoreLikeThis(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     return(this.queryExecuter.Execute(query, options));
 }
Beispiel #10
0
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options, CancellationToken cancellationToken = default(CancellationToken))
 => PerformOperation(operations => operations.MoreLikeThisAsync(query, options));
Beispiel #11
0
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options, CancellationToken cancellationToken = default(CancellationToken))
 {
     throw new NotImplementedException();
 }
Beispiel #12
0
 public SolrMoreLikeThisHandlerResults <T> MoreLikeThis(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     throw new NotImplementedException();
 }
Beispiel #13
0
        /// <summary>
        /// Serializes all More Like This handler parameters
        /// </summary>
        /// <param name="query"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public IEnumerable <KeyValuePair <string, string> > GetAllMoreLikeThisHandlerParameters(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
        {
            yield return
                (query.Switch <KeyValuePair <string, string> >(
                     query: q => KV.Create("q", querySerializer.Serialize(q)),
                     streamBody: body => KV.Create("stream.body", body),
                     streamUrl: url => KV.Create("stream.url", url.ToString())));

            if (options == null)
            {
                yield break;
            }

            foreach (var p in GetCommonParameters(options))
            {
                yield return(p);
            }

            foreach (var p in GetMoreLikeThisHandlerParameters(options.Parameters))
            {
                yield return(p);
            }
        }
Beispiel #14
0
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options) => basicServer.MoreLikeThisAsync(query, options);
Beispiel #15
0
 /// <inheritdoc />
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(this.queryExecuter.ExecuteAsync(query, options, cancellationToken));
 }
Beispiel #16
0
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     return(this.queryExecuter.ExecuteAsync(query, options));
 }
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     SetLastOperation();
     return(Task.FromResult <SolrMoreLikeThisHandlerResults <T> >(null));
 }
 public SolrMoreLikeThisHandlerResults <T> MoreLikeThis(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     SetLastOperation();
     return(null);
 }
Beispiel #19
0
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options, CancellationToken cancellationToken = default(CancellationToken)) => basicServer.MoreLikeThisAsync(query, options, cancellationToken);
Beispiel #20
0
 public Task <SolrMoreLikeThisHandlerResults <T> > MoreLikeThisAsync(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 => PerformBasicOperation(operations => operations.MoreLikeThisAsync(query, options));
Beispiel #21
0
 public SolrMoreLikeThisHandlerResults <T> MoreLikeThis(SolrMLTQuery query, MoreLikeThisHandlerQueryOptions options)
 {
     provider.LastOperation = "MoreLikeThis";
     return(null);
 }