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 | ||
---|---|---|
index | string | Name of an index on which query will be executed. |
documentId | string | Id of a document for which similarities will be searched. |
parameters | MoreLikeThisQuery | A 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;