Как найти документ, содержащий апостроф в индексируемом тексте

Я использую эту строку для создания запроса диска

request.setQ("fullText contains '" + originalFileName + "'");

Однако, когда исходное имя файла содержит "'", запрос выдает эту ошибку:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request {   "code" : 400,   "errors" : [ {
    "domain" : "global",
    "location" : "q",
    "locationType" : "parameter",
    "message" : "Invalid Value",
    "reason" : "invalid"   } ],   "message" : "Invalid Value" }

Я понимаю, почему выдается ошибка, но как мне создать строку поиска, чтобы найти файлы, содержащие «часто задаваемые вопросы» в индексируемом тексте? Есть ли подстановочный знак или escape-символ?


person Jasper Duizendstra    schedule 01.11.2012    source источник


Ответы (1)


Вы должны избегать ' с помощью \, поэтому:

"fullText contains \'myFile\'"
person Ali Afshar    schedule 01.11.2012
comment
это должно быть задокументировано! - person David; 18.03.2014
comment
@David Документация находится здесь developers.google.com/drive/web/search-parameters Кроме того, этот ответ вводит в заблуждение. согласно приведенным выше документам, contains требует/ожидает ' вокруг строки для поиска. Таким образом, вы не должны не избегать окружающего '. Если взять в качестве примера ответы на часто задаваемые вопросы, правильно экранированный запрос будет выглядеть так: "fullText contains 'faq\'s'" - person Don Cheadle; 14.01.2015