elasticsearch,.net,Vb.net,elasticsearch" /> elasticsearch,.net,Vb.net,elasticsearch" />

.net ElasticSearch在必须之间正确使用should

.net ElasticSearch在必须之间正确使用should,.net,vb.net,elasticsearch,.net,Vb.net,elasticsearch,我必须使用.NET中ElasticSearch的“必须”和“应该”功能进行以下筛选:(1 | 2)和&(4 | 5 | 6)和&(6 | 7),但我不知道如何在“应该”筛选之间进行“必须”。我浏览了教程和文档,但找不到这方面的例子。 感谢您的帮助 你能帮我用Visual Basic表示这个吗?我得到的代码是: Dim r As FilterContainer = Filter(Of view_Article).Bool(Function(b) b.Sh

我必须使用.NET中ElasticSearch的“必须”和“应该”功能进行以下筛选:(1 | 2)和&(4 | 5 | 6)和&(6 | 7),但我不知道如何在“应该”筛选之间进行“必须”。我浏览了教程和文档,但找不到这方面的例子。 感谢您的帮助

你能帮我用Visual Basic表示这个吗?我得到的代码是:

Dim r As FilterContainer = Filter(Of view_Article).Bool(Function(b)
                      b.Should(lstAF.ToArray)
                      For Each item As ContainerList In lstAnyFilter
                          b.Should(item.list.ToArray())
                      Next
                      Return b
                      End Function)
Return r

但我认为这只是用新的过滤器替换当前的过滤器。如何进行多个单独的应筛选请求?

您应该组合布尔筛选:

{
  "query": {
    "bool": {
      "filter": {
        "bool": {
          "must": [
            {
              "bool": {
                "should": [
                  {#FILTER1},
                  {#FILTER2}
                ]
              }
            },
            {
              "bool": {
                "should": [
                  {#FILTER3},
                  {#FILTER4},
                  {#FILTER5}
                ]
              }
            },
            {
              "bool": {
                "should": [
                  {#FILTER6},
                  {#FILTER7}
                ]
              }
            }
          ]
        }
      }
    }
  }
}

除了使用
bool过滤器
,还可以使用
bool查询
。把它当作

{
"query": {
    "bool": {
        "must": [
           {
               "bool": {
                   "should": [
                      {Query1},
                      {Query2}
                   ]
               }
           },
           {
               "bool": {
                   "should": [
                      {Query3},
                      {Query4}
                   ]
               }   
           }
        ]
    }
  }
}