Язык запросов Kusto: получение ключевого слова, которое было найдено (has_any)
Я загружаю файл csv в свой KQL в качестве внешнего источника данных. Я запускаю запрос на соответствие столбцу:
Events | where Title has_any (ColumnName) | project Title, EventId
Теперь я хочу объединить вывод со значением столбца, которое было сопоставлено. Например, если столбец имеет значения: «test», «test2», «test3» и «test2» были сопоставлены в приведенном выше запросе, таблица результатов должна быть примерно такой:
Title,EventId,MatchedColumnValue
Пожалуйста помоги
1 ответ
Одна проблема с вашим вопросом: что произойдет, если в заголовке будет больше одного слова? Предполагая, что это может быть только одно слово, вот одно решение (с использованием функции case ):
let Values = dynamic(["title1", "title2", "title3"]);
let Events = datatable(EventId:int, Title:string)[1,"this is title2, and its boring", 2, "title3 is great"];
Events
| extend MatchedTitle = case(Title has tostring(Values[0]), tostring(Values[0]),
Title has tostring(Values[1]), tostring(Values[1]),
Title has tostring(Values[2]), tostring(Values[2]),
"")