Google Sites API 전체 텍스트 검색은 비 서구 언어에서 작동하지 않습니다.
JavaEE 애플리케이션에서 Atom 기반 Google Sites API 를 사용하여 비공개 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 사이트 의이 사이트 검색 필드 에서 동일한 키워드를 검색 하면 올바른 결과를 얻습니다. 토큰 토큰 화 된 존재가 존재한다는 의미를 내렸지 만 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? 아이디 = 3780
업데이트 2
일부를 앞뒤로 진행 한 후 Google 엔지니어는 설명 된대로 문제가 실제로 존재 함을 인정하고 "내부적으로 문제를 출시했습니다 . " 결함 티켓은 그 이후 로 분류 된 상태 에 머물러 있습니다. 저처럼이 문제가 해결되는 데 관심이 있으시면 잠시 시간을내어 Google의 문제 추적기 에서 별표 / 투표 해주세요 .
애플리케이션이 정의 된 기한을 처리하기 위해 API를 사용할 때 어떤 느낌인지 알고 있습니다. Google 사이트 원이 버그를 해결해야 할 때까지 기다려야합니다 (이미 추천했습니다 :)). 검색 API를 사용하기 만하면됩니다.
그러나 그동안 몇 가지 해결 방법을 시도해야 생각합니다. 100 % 귀하의 요구를 풍부하게 못하지만 유용 할 수있는 다른 솔루션을 제안 할 수 있습니다. 예를 들어, 풍부한 검색 API와 공급되는 공급 데이터 피드를 노출하도록 사이트를 구성-그것은 Google 사이트에 의해 불에 당신의 모든 기사와 RSS 피드 될 수있다 Feedly의 멋진 다중 언어 API 지원을 검색해야 ( 의 컨텐츠 를 검색 데이터 개인 정보를 보호하기 위해 강력한 인증과 함께 스트림 ).
건축가로서 저는 이것이 문제에 대한 적절한 해결책이 아니라는 것을 알고 있습니다, 일단 러시아어 및 우크라이나어 로케일을 사용하여 100 개 이상의 서로 다른 데이터 소스에서 데이터를 완벽하게 검색 할 수있는 애플리케이션을 빌드하는 데 도움이되었습니다.
응용 프로그램 개발에 행운을 빕니다.이 솔루션이 도움이 제안세요! :)
'ProgramingTip' 카테고리의 다른 글
팬더에서 DataFrame 셔플 / 순열 (0) | 2020.11.12 |
---|---|
cellForRowAtIndexPath : 호출되지 않음 (0) | 2020.11.12 |
*이 '기능에 대한'rvalue 참조 없음에 대한 해결 방법 (0) | 2020.11.12 |
LAPACK을 사용하여 Cython 기반 확장 배포 (0) | 2020.11.12 |
AvalonEdit : 계단식 HighlightingColorizers (0) | 2020.11.12 |