2012-04-06 2 views
3

그래서 Solr을 사용하여 작업하고 있고, 데이터를 읽고, 데이터를 처리하고, 업데이트를 저장하고 있습니다. 그것은 작동합니다! 그것을 조심해! 그런 다음 (테스트에서 FSM에 감사드립니다) 이상한 실패를하기 시작합니다. 때로는 제대로 작동하지만 때로는 Solr 서버가 400 또는 500 오류를 반환합니다. 위스키 탱고 폭스 트롯?Solr은 HTTP 오류 400 또는 500을 반환합니다.

서점 앱이라고 말하면됩니다. 국제 서점. 따라서 여기에 여러 개의 코드 페이지가 있습니다. 일부는 스페인어로, 일부는 히브리어로 사용됩니다. 앱 자체는 미국 영어로 제공됩니다. 따라서 필드 이름은 키릴 어로 된 영어, 제목 및 기타 텍스트이거나 히브리어로 문자 주문 재미입니다. 당신은 히브리어 제목 중 하나 (그러나 전부는 아님)가 문제를 일으킨다는 것을 알게됩니다.

다음 프로세스는 다음과 같습니다. Solr 쿼리를 사용하여 레코드를 가져 와서 레코드를 업데이트하고 전체 레코드를 Solr에 다시 쓰십시오. '개수'입력란을 '5'에서 '4'로 업데이트합니다. 일부 타이틀은 업데이트되고 일부는 실패합니다. 인터넷 검색은 모든 종류의 가능한 청어를 나타냅니다. 바이트 순서 표시 문제입니까? UTF8 제어 문자? 구성이 잘못 되었습니까? 아마도. 그러나.

<add> 
    <doc> 
    <field name="StockNumber">1</field> 
    <field name="Count">5</field> 
    <field name="Title">רוקד עם זאבים</field> 
    <field name="Translated_Title">Dances With Smurfs</field> 
    <field name="Summary">Our Hero goes to another place, bonds with the Odd Looking Natives, & saves the day.</field> 
    </doc> 
</add> 

문제는 "요약"필드에 :

은 다음과 같습니다 문서 업데이트를 감안할 때. 구체적으로는 "&"입니다. URL은 "&amp;"으로 인코딩되어야합니다. 그렇지 않으면 그 뒤에 나오는 단어가 업데이트의 일부가 아니라 명령으로 해석됩니다. 그것은 "&"이 아닌 "&amp;" 과 같이 Solr에 대한 쿼리에 의해 반환되었습니다. Solr에 대한 쿼리에서 반환 된 데이터를 Solr을 업데이트하기위한 적절한 형식으로 받아 들일 수는 없습니다. 물론 URL을 으로 인코딩하면 필드를 다시 작성하기 전에 Solr에서 읽으십시오. 히브리어 (예제에서는)가 16 진수 형식으로 저장되고 그 형식으로 반환됩니다. 히브리어로).

그러나 Solr은 "&amp;"을 "&"으로 저장합니다.

< 및> 같은 문제가 있습니다.

+2

그래서 ... 뭐가 궁금한가요? 이건 그냥 호언 장담인가? –

+0

아니요. 다른 사람들이 그것을 볼 수 있도록 여기에. 나는 어제 대부분을 이것을 알아내는 데 보냈으며 다른 사람들이 그렇게하지 못하도록하기를 바랍니다. 문제에 대한 반응이 "site : stackoverflow.com error description-of-problem"인 유일한 코더가 될 수 없습니다. – wiredog

+0

당신의 대답이 다른 사람들을 도울 것이라고 생각한다면, 문제를 게시 한 다음 아래 질문에 답하십시오. 답변 섹션은 솔루션이 있어야하는 장소입니다. –

답변

1

클라이언트 응용 프로그램에서 CDATA 태그 사이에 모든 것을 보내보십시오. 등 : 동적 항상 쉽게 사용하는 응용 프로그램에서 문서를 구성하는 경우 물론

<add> 
    <doc> 
    <field name="StockNumber"><![CDATA[1]]></field> 
    <field name="Count"><![CDATA[5]]></field> 
    <field name="Title"><![CDATA[רוקד עם זאבים]]></field> 
    <field name="Translated_Title"><![CDATA[Dances With Smurfs]]></field> 
    <field name="Summary"><![CDATA[Our Hero goes to another place, bonds with the Odd Looking Natives, & saves the day.]]></field> 
    </doc> 
</add> 

가 정수 필드에 필요한 아니지만.

유일한 경고는 텍스트에 이미 CDATA 태그가 없는지 확인하는 것입니다. Double CDATA는 모든 곳에서 문제를 일으킬 것입니다.

+0

예. 그것은 그것을 고쳤다. 감사! – wiredog

+0

내 상황에서는 작동하지 않습니다. – David

관련 문제