gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:43:28 26 4
gpt4 key购买 nike

我想在 flex 搜索中使用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"
}
}
]
}
}
}

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

关于elasticsearch - Elastic Search NEST-如何在搜索中具有多个级别的过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22457232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com