簡體   English   中英

C#Nest Elastic Search通配符查詢-未返回結果

[英]C# Nest Elastic Search Wildcard Query - No Results Returned

我正在嘗試使用通配符在C#中設置查詢。 我可以使用MultiMatch獲得正確的返回數據,但通配符未成功。 這是我到目前為止的內容:

public async Task<IEnumerable<SearchResultModel>> Search(string query)
     var queryResults = await elasticApp.SearchAsync<dynamic>(s => s
        .From(0)
        .Take(10)
        .Index(activeIndices)
        .Type(dataTypes)
        .Query(q => q
            .Bool(b => b
                .Should(m => m
                    .Wildcard(w => w
                        .Field("name")
                            .Value(w + "*")                            
                     )
                 )
             )
         )

因此,對於使用MultiMatch時的函數參數query ,您將在最后執行.Query(query) ,但是當我嘗試將其放入通配符時,會出現語法錯誤。 根據NEST ES文檔,您似乎在最后沒有使用.Query

當前返回一個空數組。

由於我不熟悉Nest和C#,因此對此有任何見識將不勝感激。

通過執行以下操作,我能夠解決我的問題:

.Query(q => q                    
  .Bool(b => b                     
    .Should(m => m
      .Wildcard(c => c
        .Field("name").Value(query.ToLower() + "*")
      )
    )
  )
)

query是作為函數參數傳入的,我希望星號在query后接受所有信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM