1 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
因?yàn)橐@取字段中具有精確值的文檔,所以需要使用term 查詢(xún)。所以這個(gè) elasticsearch 查詢(xún)將適合你:
GET slog-2019-07-29/_search
{
? "query": {
? ? "term": {
? ? ? "logLevel.keyword": {
? ? ? ? "value": "Information"
? ? ? }
? ? }
? }
}
請(qǐng)注意,對(duì)于我使用的字段logLevel.keyword而不是logLevel這個(gè),是因?yàn)樽侄问顷P(guān)鍵字logLevel.keyword類(lèi)型,這在您的情況下非常有用,因?yàn)閑lasticsearch不會(huì)分析此類(lèi)字段中的值,因此在elasticsearch中保存為. 這將使您能夠找到特定字段中具有精確值的文檔。對(duì)于保存為.InformationInformationlogLeveltextinformation
我們還需要使用術(shù)語(yǔ)查詢(xún),因?yàn)槲覀儾幌M鹐lasticsearch 分析我們放入的內(nèi)容value。
現(xiàn)在,使用 NEST,您可以使用以下代碼編寫(xiě)此類(lèi)查詢(xún):
var searchResponse = await elasticClient
? ? .SearchAsync<Document>(s => s
? ? ? ? .Query(q => q
? ? ? ? ? ? .Term(t => t
? ? ? ? ? ? ? ? .Field(f => f.LogLevel.Suffix("keyword"))
? ? ? ? ? ? ? ? .Value("Information"))));
class Document
{
? ? public string LogLevel { get; set; }
}
LogLevel 應(yīng)為“ERROR” LogType 應(yīng)為“Response”。
為此,您需要使用bool 查詢(xún),它允許您將多個(gè)條件組合到一個(gè)查詢(xún)中。
GET slog-2019-07-29/_search
{
? "query": {
? ? "bool": {
? ? ? "must": [
? ? ? ? {
? ? ? ? ? "term": {
? ? ? ? ? ? "logLevel.keyword": {
? ? ? ? ? ? ? "value": "ERROR"
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? },
? ? ? ? {
? ? ? ? ? "term": {
? ? ? ? ? ? "logType.keyword": {
? ? ? ? ? ? ? "value": "Response"
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? ]
? ? }
? }
}
- 1 回答
- 0 關(guān)注
- 121 瀏覽
添加回答
舉報(bào)