ElasticSearch.net附件搜索数组将返回带有搜索结果的所有附件,如何仅检索匹配数据

Class Mail
{
  public string MailID               {get;set;}

  [nested]
  public List<Attachment> attachments {get;set;}

}
Class Attachment
{
  public int AttachmentID {get;set;}

  public string Data {get; set;}   

  [nested]
  public nest.attachment {get;set;}

}

上面是我的索引结构,正确记录了Ingest-Pipeline数据,但是当尝试搜索附件内容时,它会返回带有所有附件的孔附件对象以及实际的搜索附件。 在结果中,我只需要带有搜索结果的附件

以下是我的查询


                var response1 = elasticClient.Search<Mail>(s => s
                                          .Index(indexName)
                                          .Query(q =>
                                           q.Match(mq => mq.Field("attachments.attachment.content").Query("b"))
                                           ));

liaoyi1107 回答:ElasticSearch.net附件搜索数组将返回带有搜索结果的所有附件,如何仅检索匹配数据

由于附件是一个嵌套字段,因此您需要使用nested query

.Nested(c => c
    .Path(p => p.attachments)
    .InnerHits = new InnerHits {},.Query(q =>
           q.Match(mq => mq.Field("attachments.attachment.content").Query("b"))
))

作为回应,您需要从内部匹配中读取对象

本文链接:https://www.f2er.com/2653702.html

大家都在问