【问题标题】:C# Elastic search - Nest query / filteringC# 弹性搜索 - 嵌套查询/过滤
【发布时间】:2016-05-18 07:51:21
【问题描述】:

我是弹性搜索/NEST 的新手,需要一些帮助才能查询/过滤我的数据。

我有一份产品清单。这些产品可以有任意数量的选项,这些选项与它们相关联的价值。而且我需要能够按选项名称及其值过滤产品。

我尝试将图片与问题放在一起:)

我还没有嵌入图像的声誉:(

传入的搜索/过滤器参数是动态的,因此可以有任意数量的带有值的选项。

希望有人能在正确的方向上帮助我!

谢谢!

【问题讨论】:

  • 为什么不直接将这些信息作为文本包含在内?
  • 我需要能够用笔标记一些部分:)
  • 那么,您需要搜索至少可以包含一个Size至少Color值的文档?
  • 应该可以搜索定义了任何选项/值的文档。
  • 所以如果我的产品只定义了一个选项。在这种情况下我们说“尺寸”,但产品有两种尺寸,所以它有两个值,比如“16”和“17”。因此,如果我要对尺寸进行产品过滤并定义我想查看尺寸为“16”的产品,我应该得到匹配,如果我定义了“16”和“19”,我会得到匹配。

标签: c# elasticsearch nest


【解决方案1】:
  var results = client
                            .Search<YourMappingEntity>(s => s
                            .Type("page")                            
                            .Filter(f => f
                            .Bool(bb => bb
                            .Must(ms =>
                            {
                                FilterContainer filterContainer = null;
                                filterContainer &=
                                   ms.Term("Size", yourarrayofsizes) &&
                                   ms.Terms("Color", yourarrayofcolors) ;


                                return filterContainer;
                            })))

【讨论】:

  • 这在某种程度上有帮助吗?
  • 嗯,看起来不错,但它将 FILTER / BOOL / FilterContainer 和 Term 标记为红色。也许语法适用于旧版本的 NEST?
  • 可能是..我正在使用 v1.0.0.0
  • 嗯..也许你可以查看他们的网站elastic.co/guide/en/elasticsearch/client/net-api/2.x/index.html
  • 我这样做了,但我需要它作为 NEST 示例。还是这个领域的菜鸟:/
【解决方案2】:

所以经过一些研究和黑客攻击,这就是我想出的,它按预期工作:)

http://i.imgur.com/gSLyznY.png

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 2015-09-24
    • 2023-01-10
    • 2015-01-25
    • 2017-06-11
    • 2020-02-07
    • 2020-07-26
    相关资源
    最近更新 更多