簡體   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