Язык запросов 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]),
                             "")
Другие вопросы по тегам