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

how to implement filters in elasticsearch using 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"))));

希望你一切都好 我认为您正在尝试在嵌套对象中查找。 Elasticsearch 有一个专门针对这种需求的查询是 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。