Elasticsearch子对象id搜索

时间:2014-12-22 20:32:30

标签: c# elasticsearch nest

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

 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))

        );

1 个答案:

答案 0 :(得分:0)

试试这个:

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)));

此查询会搜索所有包含 searchtext 作为其标题的一部分的文档以及ID = tagId 的标记。