繁体   English   中英

Elastic Search Nest C#语法错误:在一个查询中使用通配符和多重匹配

[英]Elastic Search Nest C# Syntax Error: using wildcard and multimatch within one query

我有一个查询,我想拥有两个子句:一个用于.MultiMatch ,另一个用于.Wildcard 通配符与多重匹配无关。

我可以让它们分别工作,但不能一起工作。 Visual Studio中的当前错误消息的下划线标有Wildcard并显示以下内容:

Querycontainer does not contain a definition for 'Wildcard'...

这是我尝试实现的代码。 我试图把.Wildcard.MultiMatch在不同的.Should碎片,但无济于事。

.Query(q => q
  .Bool(b => b
    .Should(m => m                             
      .MultiMatch(ma => ma
        .Fields(f => f.Field("_id")
          .Field("elements.location.city")
          .Field("ticket_number")
          )
          .Query(query)
        )
        .Wildcard(c => c
          .Field("name").Value(query.ToLower() + "*")
        )
      )
    )
  )

您在第8行看到的query将作为参数传递给该函数。

如上所述,第10行是手头的问题,因为查询容器不知道如何处理通配符。

任何和所有的输入表示赞赏。

这取决于在MultiMatchWildcard查询之间要使用哪种布尔条件?

例如在这里,我要寻找满足两个记录MultiMatch WildCard查询:

.Query(q => q
    .Bool(b => b
        .Must(m => m
            .MultiMatch(mm => mm
                .Fields(f => f.Field("FieldName"))
                .Query("MyKeyword")

            ), wc => wc
            .Wildcard(c => c
                .Field("FieldName")
                .Value("*Something*")
            )
        )
    )
));

如果要进行OR运算 ,请使用Should而不是Must :请参阅Bool查询用法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM