Elastic Search NEST-如何在搜索中具有多个级别的过滤器

迪内什·库马尔(Dinesh Kumar P)

我想在弹性搜索中使用NEST API进行多层过滤,以得出结果集。是否可以查询其他过滤器的结果...?如果可以,我可以在多个级别上执行此操作吗?

我的要求就像允许用户选择/取消选择各个字段的选项。

示例:我的索引“人员”中总共有1000个文档。可能有3个列表框,1)城市2)最喜欢的食物3)最喜欢的颜色。如果用户选择一个城市,它将过滤掉600个文档。在这600份文档中,我想过滤“最喜欢的食物”,这可能会导致约300份文档。现在,我想进一步过滤一下。到喜欢的电影中检索以前导出的300个文档中的50个文档。

加里焊接

您无需在过滤器内查询即可实现所需的功能。只需使用过滤的查询http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html,并提供几个过滤器即可。在您的实例中,我假设您将对第一个查询执行以下操作:

{
    "filtered" : {
        "query" : {
            "match_all" : { }
        },
        "filter" : {
            "and" : [
                {
                    "term" : {
                        "city" : "some city"
                    }
                }
            ]
        }
    }
}

然后,您将从中返回结果并显示它们。然后,让他们选择下一个过滤器并执行以下操作:

{
    "filtered" : {
        "query" : {
            "match_all" : { }
        },
        "filter" : {
            "and" : [
                {
                    "term" : {
                        "city" : "some city"
                    }
                },
                {
                    "term" : {
                        "food" : "some food"
                    }
                }
            ]
        }
    }
}

然后,您需要冲洗并重复以下3个过滤器参数:

{
    "filtered" : {
        "query" : {
            "match_all" : { }
        },
        "filter" : {
            "and" : [
                {
                    "term" : {
                        "city" : "some city"
                    }
                },
                {
                    "term" : {
                        "food" : "some food"
                    }
                },
                {
                    "term" : {
                        "colour" : "some colour"
                    }
                }
            ]
        }
    }
}

我还没有测试过,但是原理是合理的并且可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Nest Elastic Search中的嵌套聚合

来自分类Dev

NEST Elastic Search上的MatchPhrasePrefix

来自分类Dev

NEST Elastic Search上的MatchPhrasePrefix

来自分类Dev

Elastic Search Nest 创建连接

来自分类Dev

在 Elastic Search Nest Client .NET 中实现搜索查询的异步方式

来自分类Dev

如何在Elastic Search中使用NEST(1.8)索引字符串数组?

来自分类Dev

如何在 Elastic Search 中使用 Nest 创建特定属性的索引?

来自分类Dev

C# Nest Elastic Search 通配符查询 - 没有返回结果

来自分类Dev

如何将嵌套类型与NEST客户端一起用于Elastic Search

来自分类Dev

修改Nest和Elastic Search的序列化程序设置

来自分类Dev

检测到Elastic Search NEST自引用循环属性

来自分类Dev

使用Elastic Search Nest插入数据的性能问题

来自分类Dev

Elastic Search Nest - 比较两个字段

来自分类Dev

Boosting始于并包含使用Elastic / NEST的搜索

来自分类Dev

带有分析器的 Elastic-nest.Search 不起作用。它无法检测到分析器

来自分类Dev

搜索过滤器在Elastic Search PHP中不起作用

来自分类Dev

如何在Elastic Search中将过滤器添加到更像此查询的地方?

来自分类Dev

如何在Elastic Search中将过滤器添加到更像此查询的地方?

来自分类Dev

Elastic Search - 如何丢失记录

来自分类Dev

在Elastic Search中组合聚合

来自分类Dev

NEST 1.0是否可以与Elastic Search 0.x一起使用?

来自分类Dev

如何在 Elastic Search 中编写条件

来自分类Dev

Elastic NEST不允许我创建多个聚合

来自分类Dev

具有范围的Elastic Search复合分组

来自分类Dev

在Elastic Search中在query_string旁边使用过滤器

来自分类Dev

用于搜索模板的Elastic Search Java API

来自分类Dev

Elastic Search插件可以具有多个onModule函数吗

来自分类Dev

如何在一个Docker撰写文件中包含Elastic Search(具有多个节点)和Kibana?

来自分类Dev

如何在Elastic Search上更改搜索结果的顺序?

Related 相关文章

  1. 1

    Nest Elastic Search中的嵌套聚合

  2. 2

    NEST Elastic Search上的MatchPhrasePrefix

  3. 3

    NEST Elastic Search上的MatchPhrasePrefix

  4. 4

    Elastic Search Nest 创建连接

  5. 5

    在 Elastic Search Nest Client .NET 中实现搜索查询的异步方式

  6. 6

    如何在Elastic Search中使用NEST(1.8)索引字符串数组?

  7. 7

    如何在 Elastic Search 中使用 Nest 创建特定属性的索引?

  8. 8

    C# Nest Elastic Search 通配符查询 - 没有返回结果

  9. 9

    如何将嵌套类型与NEST客户端一起用于Elastic Search

  10. 10

    修改Nest和Elastic Search的序列化程序设置

  11. 11

    检测到Elastic Search NEST自引用循环属性

  12. 12

    使用Elastic Search Nest插入数据的性能问题

  13. 13

    Elastic Search Nest - 比较两个字段

  14. 14

    Boosting始于并包含使用Elastic / NEST的搜索

  15. 15

    带有分析器的 Elastic-nest.Search 不起作用。它无法检测到分析器

  16. 16

    搜索过滤器在Elastic Search PHP中不起作用

  17. 17

    如何在Elastic Search中将过滤器添加到更像此查询的地方?

  18. 18

    如何在Elastic Search中将过滤器添加到更像此查询的地方?

  19. 19

    Elastic Search - 如何丢失记录

  20. 20

    在Elastic Search中组合聚合

  21. 21

    NEST 1.0是否可以与Elastic Search 0.x一起使用?

  22. 22

    如何在 Elastic Search 中编写条件

  23. 23

    Elastic NEST不允许我创建多个聚合

  24. 24

    具有范围的Elastic Search复合分组

  25. 25

    在Elastic Search中在query_string旁边使用过滤器

  26. 26

    用于搜索模板的Elastic Search Java API

  27. 27

    Elastic Search插件可以具有多个onModule函数吗

  28. 28

    如何在一个Docker撰写文件中包含Elastic Search(具有多个节点)和Kibana?

  29. 29

    如何在Elastic Search上更改搜索结果的顺序?

热门标签

归档