如何使用nest在elasticsearch中实现过滤器?

时间:2016-02-17 10:13:02

标签: c# elasticsearch nest

假设我在搜索相同内容后得到一些产品列表,现在我想根据颜色,大小等属性来过滤它们。

如何编写嵌套查询?

这是我的搜索查询:

   var result = client.Search<document>(s => s
                    .Analyzer("automplete").From(0).Size(20)
                    .Query(p => p
                        .MultiMatch(m => m
                            .OnFields(new[] { svalue })
                            .Query(value).Type(TextQueryType.PhrasePrefix)))
                            .Highlight(m => m.OnFields(n => n.OnField("some_field"))));

1 个答案:

答案 0 :(得分:0)

希望你没事 我认为你正在寻找嵌套的objets。 Elasticsearch有一个针对此需求的speacil查询是NestedQuery

`

GET /my_index/blogpost/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "title": "eggs" }}, 
        {
          "nested": {
            "path": "comments", 
            "query": {
              "bool": {
                "must": [ 
                  { "match": { "comments.name": "john" }},
                  { "match": { "comments.age":  28     }}
                ]
        }}}}
      ]
}}}

`

在您的情况下,要访问嵌套的对象,您需要为条件添加products.color。