【问题标题】:What is search by content in RavenDB?RavenDB 中的内容搜索是什么?
【发布时间】:2021-03-19 00:47:34
【问题描述】:

这是我第一次使用 RavenDB。我无法询问代码的创建者他们为什么做出某些决定,所以我转向互联网陌生人并希望得到一些善意。 ????

整个代码中有许多搜索查询,它们看起来都像:

query.AndAlso().Search("Content", $"*searchExpression*");

query 是 RavenDB IDocumentQuery。正在搜索的文档上未定义属性 Content

我认为这会对文档中的所有属性进行搜索。不幸的是,我找不到任何关于此的文档,所以我不确定这会如何影响性能、安全性和注入攻击。我什至不确定这是否被积极劝阻。

有人可以对此有所了解吗?即使这只是我的 google 搜索的方向,因为“ravendb search on content”并没有返回很多有用的文章。

编辑:澄清一下,我了解Search 方法的语法。它需要搜索属性,然后是正在搜索的表达式。但是我有一个文件

public class Person {
  public string FirstName {get; set;}
  public string LastName {get; set;}
  public DateTime DateOfBirth {get; set;}
}

Search 与上面相同。此Person 文档中没有“内容”属性。然而它确实搜索了一些东西,因为我可以看到文档列表被过滤了。我只是不知道它在过滤什么。

【问题讨论】:

    标签: ravendb ravendb4


    【解决方案1】:

    【讨论】:

    • 那部分很清楚。 ? 问题是文档没有“Content”属性,那么搜索的是什么?
    • 因此,如果您的文档中没有 Content 字段,那么您为什么要在此字段上进行搜索?
    • 代码不是我写的。我继承了它。最后一位开发人员离开了,给了我一个为期两周的系统高级介绍。它没有包括为什么有人写这个。我不明白它是如何过滤任何东西的。有时有效,有时无效,有时结果太多,有时太少。我有点希望有人可以解释神奇的“内容”是什么,因为它确实做了一些事情。我只是不知道到底是什么。
    • 另外,这不是一次使用,它在整个应用程序中几乎所有搜索框中都使用过。这让我感到困惑,我什至不知道这是否是一个好习惯,或者我是否应该将其列入重构列表。
    • @KenBonny,Content 可能在查询使用的索引中定义。索引长什么样子?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多