Полнотекстовый поиск API сайтов Google не работает для незападных языков

В моем приложении JavaEE я использую API Сайтов на основе Atom для извлечения контента из непубличного сайта Google. По сути, мы используем сайт Google как легкий CMS, и изнутри приложения я использую API для извлечения содержимого сайта для подачи моей онлайн-справочной системы. У меня была эта настройка на некоторое время, и она работает без сбоев.

Проблема

В моем приложении мне нужно добавить полнотекстовый поиск в интерактивную справочную систему. Я знал, что этот запрос функции появится в какой-то момент, поэтому, когда вы решаете, что Сайты Google размещают мой контент, я проверил, поддерживает ли API-интерфейс в полнотекстовом поиске. Он делает. Например, следующий URL-адрес будет искать весь сайт my-site для страниц, содержащих ключевое слово user.

https://sites.google.com/feeds/content/my.doma.in/my-site?q=user

Это работает и дает мне ожидаемые страницы результатов. Но он делает это только для контента, написанного на западных языках, или, более конкретно, языков, в которых токены/слова разделяются пробелами и пунктуацией. Когда я запускаю аналогичный поиск на своем японском контенте, поиск ключевого слова ユーザー:

https://sites.google.com/feeds/content/my.doma.in/my-site?q=%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC

Я получаю только страницы результатов, в которых термин поиска отображается как голая строка, т.е. ограничивается либо пробелом, либо пунктуацией. Поскольку японский язык написан на scriptio continua, этого недостаточно. Страницы, которые содержат, например:

ご 自身 の ユ ー ザ ー 基本 情報 の 確認

не будет отображаться в результатах. Таким образом, кажется, что индекс поиска, который используется за кулисами, создается на основе "западных" лексических правил, и японский контент неправильно обозначается. Однако, когда я ищу одно и то же ключевое слово из поля поиска сайта Google Site, я получаю правильные результаты. Я пришел к выводу, что существует правильно обозначенный индекс, но его невозможно использовать для поиска на основе API.

То, что я пробовал до сих пор

Чтобы исправить эту ситуацию, это те пути, которые я изучил до сих пор:

  • Я пробовал искать языковые настройки в самих Сайтах Google. Там общий язык пользовательского интерфейса, который уже настроен на японский язык и не влияет на результаты запроса API. Не существует языковых настроек для каждой страницы или каждого шаблона, чтобы заставить руку индексатора/токенизатора.
  • Я пробовал использовать строку поиска с двойными кавычками ("ユーザー").
  • Я пробовал включить подстановочные знаки (*ユーザー*).
  • Я попытался использовать дополнительные языковые параметры для URL-адреса, которые распространены в других API Google: lang, hl (язык интерфейса), rl (язык результатов),..
  • Я попытался создать Google пользовательскую поисковую систему, но, похоже, невозможно заставить его работать на непубличном сайте Google.

Итак...

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


Обновление 1

Мне еще предстоит найти изящное решение этой проблемы, поэтому я обнаружил дефект в трекере проблем с приложениями Google Apps: https://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3780

Обновление 2

После того, как кто-то идет туда и обратно, инженеры Google признали, что проблема действительно существует, как описано, и "подала внутреннюю проблему". С тех пор билет с дефектом застрял в состоянии triaged. Если вы, как и я, заинтересованы в том, чтобы эта проблема была решена, пожалуйста, найдите минутку, чтобы проголосовать за нее в отслеживании проблем Google.

Ответ 1

Я знаю, как он себя чувствует, ожидая поддержки некоторых тел для обработки ошибки API, пока ваше приложение не будет соответствовать установленным срокам. Проблема, которую вы описали, по-настоящему звучит как ошибка, поэтому для "чистого" решения вам придется подождать, пока команды разработчиков Google Sites не разрешат эту ошибку (я уже поддержал:)), и вы сможете просто использовать API поиска.

Однако, тем временем, я думаю, вы должны попробовать некоторые обходные пути. Я могу предложить вам другое решение, которое не удовлетворит ваши потребности на 100%, но может быть полезно. Например, настройте свой сайт, чтобы предоставить фид данных агрегации для комбинирования процессора с помощью богатого API поиска - это может быть RSS-канал со всеми статьями вашего сайта Google, сгоревшими на Feedly, которые имеют поддержку API поиска с поддержкой нескольких языков (Поиск содержимого потока), а также надежную аутентификацию для защиты ваших конфиденциальность данных.

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

Удачи в разработке приложений и дайте мне знать, помогло ли вам это решение!:)