Ошибка поиска имен файлов с пробелами в Cloudera Navigator API
У нас возникла проблема при попытке использовать API Cloudera Navigator для получения информации об именах файлов, в которых есть пробелы. Мы можем искать эти имена файлов в пользовательском интерфейсе Navigator, заключая имя файла в кавычки. Но до сих пор мы не смогли понять, как это сделать с помощью API.
Мы пробовали с оригинальным именем файла:
http://navigator.url.com:7187/api/v9/entities/?query=parentPath:(/ some / parent / path) И originalName:(Prov Layout-Others.txt)
Мы попытались заменить пробел на "% 20":
http://navigator.url.com:7187/api/v9/entities/?query=parentPath:(/ some / parent / path) И originalName:(Prov%20Layout-Others.txt)
Мы попытались заключить имя файла в кавычки внутри URL:
http://navigator.url.com:7187/api/v9/entities/?query=parentPath:(/ some / parent / path) И originalName:("ProvLayout-Others.txt")
Пока ничего не получилось. Кто-нибудь еще сталкивался с этой проблемой и, если да, есть ли решение?
Благодарю.
2 ответа
Оказывается, способ поиска имен файлов с пробелами в них заключается в замене пробелов звездочками (*) при создании URL-адреса REST API.
Для API v9 вы можете использовать +(query1) +(query2) или%2B(query1)%20%2B(query2) для нескольких запросов.
Для пробелов вы можете использовать "% 20". Если вы используете звездочки, между вашими ключевыми словами будет стоять любой символ (а не только пробелы). Например, "идентификатор клиента *" возвращает "национальный идентификатор клиента", а также просто "идентификатор клиента".
Это будет хорошо работать для поиска "Идентификатор клиента" в описании и /default/* в родительском пути
url:7187/?query=%2B(description%3A"Customer%20ID")%20%2B(parentPath%3A%5C%2Fdefault%5C%2F*)&facets=%7B%7D