弹性搜索子对象 ID 搜索

本文关键字:搜索 ID 对象 | 更新日期: 2023-09-27 18:34:55

我有一个看起来像这样的文档

 document
 {
 Title:string,
 Id:integer
 Tags:List<Tag>
 }
 Tag
 {
  Id:integer,
  Value:string,
  Type:string
 }

现在我有参数 serchtext 和 tagid 我需要根据此参数获取结果 获取与搜索词匹配并包含传递的 tagid 的所有对象

这是我一直在尝试的,但没有运气

     var fuzzySearchResult = client.Search<Products>(s => s
            .From(o)
            .Size(50)
            .Index(index)
            .Query(filterQuery).Filter(ff=>ff.Term(t=>t.Tags.Where(id=>id.Id==tagid).FirstOrDefault().Id,Id))
        );

弹性搜索子对象 ID 搜索

试试这个:

var searchtext="term";
var tagid=1;
var documents=  client.Search<Document>(x => x.Query( s =>s.Term(p=>p.Title, searchtext) && s.Term(z => z.Tags.Select(t=>t.Id), tagId)));

此查询搜索标题中包含搜索文本和 id=tagId 标记的所有文档。