Skip to main content

Session: How to use MoreLikeThis?

MoreLikeThis is available through extension method in Advanced session operations. This method returns articles similar to the provided input.

Syntax

TResult[] MoreLikeThis<TResult, TIndexCreator>(
this ISyncAdvancedSessionOperation advancedSession,
MoreLikeThisQuery parameters)
where TIndexCreator : AbstractIndexCreationTask, new() { ... }

TResult[] MoreLikeThis<TResult>(
this ISyncAdvancedSessionOperation advancedSession,
string index,
string documentId) { ... }

TResult[] MoreLikeThis<TTransformer, TResult, TIndexCreator>(
this ISyncAdvancedSessionOperation advancedSession,
string documentId)
where TIndexCreator : AbstractIndexCreationTask, new()
where TTransformer : AbstractTransformerCreationTask, new() { ... }
Parameters
indexstringName of an index on which query will be executed.
documentIdstringId of a document for which similarities will be searched.
parametersMoreLikeThisQueryA more like this query definition that will be executed.
Return Value
TResult[]Array of similar documents returned as entities.

Example I

// Search for similar articles to 'articles/1'
// using 'Articles/MoreLikeThis' index and search only field 'Body'
Article[] articles = session
.Advanced
.MoreLikeThis<Article>(
"Articles/MoreLikeThis",
null,
new MoreLikeThisQuery
{
IndexName = "Articles/MoreLikeThis",
DocumentId = "articles/1",
Fields = new[] { "Body" }
});

Example II

// Search for similar articles to 'articles/1'
// using 'Articles/MoreLikeThis' index and search only field 'Body'
// where article category is 'IT'
Article[] articles = session
.Advanced
.MoreLikeThis<Article>(
"Articles/MoreLikeThis",
null,
new MoreLikeThisQuery
{
IndexName = "Articles/MoreLikeThis",
DocumentId = "articles/1",
Fields = new[] { "Body" },
AdditionalQuery = "Category:IT"
});

Remarks

Do not forget to add following using statement which contains necessary extensions:

using Raven.Abstractions.Data;
using Raven.Client.Bundles.MoreLikeThis;
using Raven.Client.Document;