2013-11-19 2 views
2

Новое для разметки.Сбойный запрос с использованием «rex» не выполняется с ошибкой в ​​«SearchParser»: отсутствует команда поиска до «^» в REST API

Этот запрос Работает прекрасно с помощью пользовательского интерфейса:

index=serverlogs* WEB_URL=/someurl/* | rex ".*\?(?<GETQUERY>[^ ]+)" | search GETQUERY=*.jpg | top 20 REFERER 

Я пытаюсь применить это к REST API как таковой, и каждый рекс не удается, и отправляет обратно: Ошибка в «SearchParser»: Промах команда поиска до '^'

Он всегда отправляет обратно какой-либо специальный символ в скобки []. Есть ли способ использовать «rex» по API с помощью скобок в моем регулярном выражении? или иметь возможность использовать регулярное выражение для извлечения поля «на лету»?

Вот мой запрос:

curl -k https://myhost:8089/servicesNS/-/search/search/jobs/export -u user:passwd -d search="search index%3Dserverlogs* WEB_URL%3D/someurl/* | rex \".*\%3F(%3F<GETQUERY>[^ ]+)\" | search GETQUERY%3D*.jpg | top 20 REFERER" -d earliest_time="-10m" -d latest_time="now" -d output_mode="csv" > output.csv 

Любые предложения?

ответ

2

Вам нужно избегать квадратных скобок в rex (хотя и не нормально).

rex ".*\?(?<GETQUERY>\[^ \]+)" 
+0

Это работало, чтобы остановить ошибки, но запрос не возвращает никаких обращений, когда тот же запрос возвращает ожидаемые 20 значений через графический интерфейс. Исходные данные одинаковы в обоих каналах. Любая идея, почему это так? – user3010793

+0

Вместо 'curl', сначала попробуйте' echo' и посмотрите, как интерпретируются ваши обратные косые черты. Я готов поспорить, что вы не отправляете то, что думаете, что отправляете. Я не знаю, какую оболочку вы используете (если вообще есть), но, например, что, если '*' globbing? - почему вы избегаете двойных кавычек, связанных с аргументом 'rex', t сделать это в пользовательском интерфейсе? - и уверены ли вы, что это должно быть '\% 3F', а не' \\% 3F' или '% 5C% 3F'? Найдите способ просмотра отправляемого необработанного запроса. –

+0

Спасибо за вход, он поставил меня в правильном направлении. После выхода из скобок он все равно возвращал нулевые удары. Я начал с регулярного выражения «. *», Чтобы соответствовать всем и смог хотя бы вернуть хиты, хотя не то, что я пытался извлечь. – user3010793

2

У меня была такая же проблема после копирования запроса из внешнего источника перед редактированием. Кавычки вокруг моего регулярного выражения были неправильным символом. Как только я переключил их оба на ", все работало нормально.

+1

Не могу поверить ... это была моя проблема. Более внимательное рассмотрение моих цитат показало угловые цитаты! – JoshC13