1
Google Sites API全文搜索不适用于非西方语言
在我的JavaEE应用程序中,我使用基于Atom的Google Sites API从非公开的Google Site检索内容。本质上,我们将Google Site用作轻量级CMS,并且在应用程序中,我使用API检索网站内容以提供给我的在线帮助系统。我已经进行了一段时间的设置,并且工作顺利。 问题 在我的应用程序中,我需要向在线帮助系统添加全文搜索功能。我知道此功能请求有时会出现,因此在决定使用Google Sites托管我的内容时,我检查了Sites 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 我只会得到结果页面,其中搜索词以裸字符串显示,即以空格或标点符号分隔。由于日语是用连续脚本编写的语言,因此这还不够。包含以下内容的页面: 情报自身のユーザー基本情报の确认 将不会显示在结果中。因此,似乎在幕后使用的搜索索引是根据“西方”词汇规则创建的,日语内容未正确标记。但是,当我从Google网站的“搜索此网站”字段中搜索相同的关键字时,我确实得到了正确的结果。我得出结论,存在正确的标记化索引,但是似乎无法将其用于基于API的搜索。 到目前为止我尝试过的 为了解决这种情况,到目前为止,我已经探索了以下几种途径: 我尝试在Google协作平台本身中查找语言设置。有一个通用的UI语言设置,该设置已设置为日语,并且对API查询结果没有影响。没有按页面或按模板的语言设置来强制索引器/标记器的手。 我尝试用双引号("ユーザー")引用搜索字符串。 我尝试过使用通配符(*ユーザー*)。 我尝试对其他Google API中常见的URL使用其他语言参数:lang,hl(界面语言),rl(结果语言),.. 我曾尝试创建Google自定义搜索引擎,但似乎无法使其在非公开的Google网站上正常工作。 所以... 我的想法很快就用光了。在最坏的情况下,我将不得不自己检索,标记和索引所有内容,并使其可搜索。由于这需要大量的精力,因此我想知道是否有人遇到相同的问题并找到了可接受的解决方法或解决方案。 更新1 我尚未找到解决此问题的理想解决方案,因此我在Google Apps API问题跟踪器上提出了一个缺陷:https : //code.google.com/a/google.com/p/apps-api-issues/issues / detail?id = 3780 更新2 经过一番来回的摸索,Google的工程师承认该问题确实存在,并已“内部提交”。缺陷票一直停留在被分流状态至今。如果您像我一样对解决此问题感兴趣,请花一点时间在Google的问题跟踪器上对其加注/投票。