【问题标题】:Extract Json property from RavenDB从 RavenDB 中提取 Json 属性
【发布时间】:2020-07-27 06:44:59
【问题描述】:

我想从 Raven DB 数据库中提取 Json 属性。我从 Ravendb 工作室从索引中提取它,如下所示。在下面的查询中,参数Body 的类型为json,我想从中提取它的一个字段(比如说field1)。怎么办?

from index 'Selectdata' as message 
order by message.ProcessedAt desc 
select {
    UniqueMessageId: message.UniqueMessageId,
    MessageId: message.MessageMetadata.MessageId,
    MessageType: message.Headers["EnclosedMessageTypes"],
    TimeSent: message.Headers["TimeSent"],
    ProcessingStarted: message.Headers["ProcessingStarted"],
    ProcessingEnded: message.Headers["ProcessingEnded"],
    ProcessingEndpoint: message.Headers["ProcessingEndpoint"],
    ProcessedAt : message.ProcessedAt,
    Body:message.MessageMetadata.Body //json body
}

【问题讨论】:

  • 为什么不在静态索引中索引该字段(field1),以便您可以对其进行查询?
  • @Danielle - 如何对文档参数(正文)的属性进行索引?
  • 你能从json主体中提取这个字段(你感兴趣的那个)并将它作为一个属性放在你的实体类中吗?如果是,那么您可以将其编入索引。
  • @Danielle - 不,因为我无法解析为 Json 正文。
  • 尝试使用Search(),它将对“正文”字段属性执行全文搜索。见ravendb.net/docs/article-page/5.0/Csharp/client-api/session/…。注意:首先在索引定义中的'Body'字段上启用全文搜索功能

标签: ravendb ravendb-studio


【解决方案1】:

在“正文”字段中使用全文搜索
查看RavenDB Demo中的代码示例:

带静态索引的全文搜索 - 单字段
https://demo.ravendb.net/demos/csharp/text-search/fts-with-static-index-single-field

带静态索引的全文搜索 - 多个字段
https://demo.ravendb.net/demos/csharp/text-search/fts-with-static-index-multiple-fields

还可以在“Body”字段属性上使用Search() 方法。见https://ravendb.net/docs/article-page/5.0/Csharp/client-api/session/querying/how-to-use-search

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-08
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多