2013-06-04 3 views
0

브라질 포르투갈어로 된 웹 사이트가 있습니다. 나는 우리 사이트 검색을 실행하기 위해 Elasticsearch를 사용하고 있습니다.타이어가있는 ElasticSearch의 ASCII 문자

방문자가 사이트, 모든 작품에서 검색하지만,이 같은 일부 예외 (오류) 제공 codebasehq : 타이어 :: 검색 :: '

nested: JsonParseException[Invalid UTF-8 middle byte 0x72\n at [Source: [[email protected]; line: 1, column: 46]]; }]","status":500} 

이러한 오류는 내가 돈의 URL에서 온 SearchRequestFailed

?q=Acess%F3rios (error) 
?q=Acessórios (ok) 
?q=Acess%C3%B3rios (ok) 

나는이 오류를 수정하는 방법을 몰라, 내가 생성을 중지하기 위해 노력하고있어 codebasehq에 오류가 : t이 링크는 예를 들어, 위치를 알고 있습니다.

답변

0

잘못된 JSON을 수신 한 Elasticsearch에서 오류가 발생하는 것으로 보입니다. 일반적으로

는, 타이어가 잘 검색에 악센트 문자를 처리합니다

# encoding: UTF-8 
require 'tire' 

s = Tire.search do 
    query { string 'Žluťoučký' } 
end 

p s.results 

당신은 함께 타이어 로깅을 사용하도록 설정해야합니다 : 잘못된 JSON을 찾기 위해,

Tire.configure { logger STDERR, level: "debug" } 

또는 Rails logger과를, 디버그 여기에 더 많은 정보를 게시 할 수 있습니다.

+0

내 웹 사이트에서 악센트 부호가있는 문자가 작동합니다. 그러나 이러한 종류의 문자가 내 앱에 없으면 Google이 이러한 링크를 어떻게 크롤링하는지 알 수 없습니다. 경우에 따라 Google은 이러한 문자를 변환해야합니다. 나는 모른다. –

+0

@OsnyNetto 어떤 종류의 쿼리를 사용하고 있습니까,'string' 쿼리입니까? 'match' 쿼리를 선택하면 어떨까요? 전체 쿼리를 게시 할 수 있습니까? – karmi