我对弹性搜索和NEST真的很陌生,对基本问题很抱歉 我试图找出如何搜索集合属性中匹配的所有文档。
我的弹性文档对象如下所示:
[ElasticType(Name="my_document")]
public class MyDocument
{
public long Id { get; set; }
public long[] TagIds { get; set; }
}
我想知道我如何搜索他们的TagIds
属性中包含特定数字的文档。
我想做这样的事情:
elasticClient.Search<MyDocument>(x =>
x.Query(s => s.Terms(z => z.TagIds.Contains(searchVal))));
答案 0 :(得分:4)
找到它,答案非常简单,当我阅读它时,我只是没有完全理解文档。
我正在寻找的查询是:
elasticClient.Search<MyDocument>(x => x.Query(s => s.Term(z => z.TagIds, tagIdStringToSearch)));
注意:我使用的是Term()
,而不是Terms()
。第二个参数是我在集合中寻找的tagId的字符串。 (这也可能是一个int,在我的情况下它很长,所以我用字符串搜索)
保留这个问题,以便有时可能帮助其他人...... :)