2010-05-10 3 views
5

solr을 처음 사용합니다. 저는 색인 생성을 위해 solr을 사용하는 웹 사이트를 개발했습니다. solr 읽기 및 쓰기 인덱스를 작성할 때 발생할 수있는 시간 초과를 처리하고 싶습니다. 어떻게 이러한 예외를 처리 할 수 ​​있는지 안내해주십시오. solr을 solr 클라이언트로 사용하고 있으며 내 웹 사이트와 solr 서버가 tomcat에서 실행 중입니다.Solr 읽기 및 쓰기 제한 시간 예외 처리

Thnak you!

+0

당신이이 시간 제한을받을 수 있나요 때? 얼마나 자주 당신은 저지르고 있습니까? Solr 로그를 확인하여 경고 또는 오류가 없는지 확인하십시오. –

+1

안녕하세요 Maurico, 관심을 가져 주셔서 감사합니다. 검색 쿼리를 실행할 때 이러한 시간 초과가 발생합니다. 이러한 예외는 너무 자주 발생하지 않습니다. Tomcat 로그에서 읽기 시간 초과 예외가 발생했습니다. org.apache.solr.client.solrj.SolrServerException : java.net.SocketTimeoutException : 읽기 시간이 org.apache.solr.client.solrj.impl.CommonsHttpSolrServer에서 시간 초과되었습니다. .request (CommonsHttpSolrServer.java:243) at org.apache.solr.client.solrj.SolrServer.optimize (SolrServer.java:94) at org.apache.solr.client.solrj.SolrServer.optimize (SolrServer.java : 82) ..... ..... –

+0

스택 추적은 쿼리가 아닌 최적화 작업 중에 타임 아웃이 발생한다고 말합니다. 쿼리를 실행할 때마다 최적화하고 있습니까? –

답변

11

커밋 및 최적화는 검색 자에게 업데이트를 제공하는 작업입니다. 그들은 질의 이전이 아닌 갱신 이후에 실행되도록되어 있습니다.

또한 비싼 작업이므로 산발적 인 시간 초과가 발생합니다. 특별한 요구 사항이 없으면 solrconfig.xml에 <autoCommit/> 옵션을 설정하는 것이 좋습니다. 이름에서 알 수 있듯이 커밋되지 않은 최대 문서 수 또는 문서 추가 후 최대 시간과 같은 구성 가능한 기준에 따라 커밋이 자동으로 실행됩니다.

최적화는 커밋보다 훨씬 비쌉니다. 기본적으로 인덱스를 다시 작성합니다. 최적화의 빈도는 변경 사항을 커밋하는 빈도와 커밋 당 변경 횟수에 따라 다릅니다.

은 참조 :

+0

Mauricio에게 감사드립니다. 나는 모든 의문을 없애고 적절하게 구현했습니다. 이제 solr 인덱스를 추가하거나 제거 할 때 커밋만을 사용하고 있습니다. 감사합니다. –