3

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

1 回答 1

4

找到了,答案真的很简单,只是看文档的时候还没有完全看懂。

我正在寻找的查询是:

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

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

留下这个问题,这样它可能会在某个时候帮助别人...... :)

于 2012-11-06T07:35:19.727 回答