使用elasticsearch&amp ;;搜索集合中的匹配项巢

时间:2012-11-06 06:42:35

标签: c# elasticsearch nest

我对弹性搜索和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))));

1 个答案:

答案 0 :(得分:4)

找到它,答案非常简单,当我阅读它时,我只是没有完全理解文档。

我正在寻找的查询是:

elasticClient.Search<MyDocument>(x => x.Query(s => s.Term(z => z.TagIds, tagIdStringToSearch)));

注意:我使用的是Term(),而不是Terms()。第二个参数是我在集合中寻找的tagId的字符串。 (这也可能是一个int,在我的情况下它很长,所以我用字符串搜索)

保留这个问题,以便有时可能帮助其他人...... :)