2013-10-18 3 views
0

저는 Solr 패싯 필드로 작업 중이며 이해할 수없는 성능 문제가 있습니다. 이 두 쿼리를 고려Solr 패싯 성능

  1. q=단어&facet.field=CONTENT&facet=true&facet.prefix=&facet.limit=10&facet.mincount=1&facet.method=enum&rows=0
  2. q=단어&facet.limit=10&facet.mincount=1&facet.method=enum&rows=0

유일한 차이점은 첫 번째 쿼리의 빈 facet.prefix입니다&facet.field=CONTENT&facet=true&facet.prefix=.

첫 번째 쿼리는 약 20 초 (결과로는 QTime 20000)를 반환하고 두 번째 쿼리는 80msec (QTime 80)를 사용합니다. 왜 이런거야?

사이드 노트 : facet.method=fc은 쿼리를 '영원히'실행하고 결국 org.apache.solr.common.SolrException: Too many values for UnInvertedField faceting on field CONTENT으로 실패합니다.

이것은 Solr 1.4입니다.

답변

0

콘텐츠에 여러 가지 용어가있을 수 있으며 의미가없는 부분이있을 수 있습니다. 범주 필드 나 덜 독특한 용어로 다른 필드를 패 시팅 해보십시오.

0

Solr 서버를 새로 다시 시작한 후에 반대 순서로 실행 해 보셨습니까?

일반적으로 첫 번째 쿼리에는 시간이 더 오래 걸리고 다음 쿼리가 이전 쿼리와 공통점이 더 많으면 캐시 적중 횟수가 많아 응답 시간이 놀라 울 것입니다.

또한 'enum'은 고유 용어 수가 적은 패싯 필드에 더 적합하다는 점에 유의하십시오.

또한, 정말 큰 숫자로 filter-cache. 증가 시도하고 힌트

SOLR_DOMAIN:PORT/solr/#/collection1/plugins/cache?entry=fieldValueCache,filterCache 
+0

감사에서 캐시 적중률을 확인합니다. 나는 우리의 디폴트 값으로 3 분 후에 답을 얻으려고했다. 나는'filterCache'를 10 번 증가 시켰고, 3 분 후에 답을 얻었다. 다음으로'filterCache'를 10 번 더 늘렸고, 15 분 정도 후에 답을 얻었습니다. 다른 뭔가가있어. –