RavenDB MoreLikeThis with dynamic document - example?

时间:2016-12-23 12:36:27

标签: ravendb

根据docs,RavenDB v3.5为人工文档添加了“MoreLikeThis”支持,这意味着您可以使用动态文档进行比较,而不是已经存储的文档。

我无法找到如何完成此操作的示例。文档中的示例似乎都使用现有文档。

1 个答案:

答案 0 :(得分:1)

您可以通过在此处传递人工文档的JSON字符串来完成此操作:

https://github.com/ravendb/ravendb/blob/v3.5/Raven.Abstractions/Data/MoreLikeThisQuery.cs#L113

请参阅此处的示例:https://github.com/ravendb/ravendb/blob/f3b5f3a186d07776bf38bf9effab4d7d75d5c647/Raven.Tests.Bundles/MoreLikeThis/MoreLikeThisShouldSupportMapReduceIndexes.cs#L100

        [Fact]
        public void CanMakeDynamicDocumentQueries()
        {
            using (var session = store.OpenSession())
            {
                var list = session.Advanced.MoreLikeThis<IndexDocument, MapReduceIndex>(
                    new MoreLikeThisQuery
                    {
                        Document = "{ \"Text\": \"C#: The Good Good Parts\" }",
                        Fields = new[] { "Text" },
                        MinimumTermFrequency = 1,
                        MinimumDocumentFrequency = 1
                    });

                Assert.Equal(2, list.Count());
                Assert.Contains("Javascript: The Good Parts", list.First().Text);
            }
        }