2010-07-14 5 views
2

내 질문에 꽤 유사 this question
차이점은 고유 한 값에 대한 정보를 수집하는 데 최소한의 RAM 집약적 인 방법이 필요합니다. 이 경우 실제 카운트를 신경 쓰지 않고 필드에 사용할 수있는 값을 알고 싶습니다.
나는 힙 공간 (3 천만 + 문서)이 끊임없이 부족해 메모리 절약 방법으로이 작업을 수행 할 수있는 방법/매개 변수가 있어야합니다.개 별 SOLR 필드 값

+0

당신이 facet.method 매개 변수와 함께 연주 적이 있습니까? –

+0

아니요,하지만 "fc"가 solr 1.4의 새로운 기본값이기 때문에 대신에 무엇을 넣어야하는지 모르겠습니다. –

+0

다른 하나는 "enum"이지만 "fc"는 메모리를 적게 차지해야합니다. http://wiki.apache.org/solr/SimpleFacetParameters#facet.method –

답변

0

RAM 사용에 대해서는 잘 모릅니다 만, 시도 Field collapsing Solr here에 대한 패치를 찾을 수 있습니다.

+0

을 참조하십시오. 이는 결과 집합에만 관련이있는 것으로 보입니다. 나는 솔레가 어떤 행을 반환하도록 내버려 두지 않는다. 나는 단지 패싯 필드에 관심이 있습니다 –

1

고유 값의 수가 많은 경우 패싯 페이징을 수행해야 할 수 있습니다. facet.offset 및 facet.limit 매개 변수를 사용하십시오.

+0

"높은"것은 무엇입니까? 최상위 필드에는 100 개의 가능한 값이있을 수 있습니다. –

+0

기본값은 100이므로 일반적으로 "높음"으로 간주되지 않습니다. 그러나 facet.limit = 10으로 시도해보십시오. –

1

사용 StatsComponenet가 특정 필드에 대한 고유 값의 목록을 검색 할 수 : https://cwiki.apache.org/confluence/display/solr/The+Stats+Component

매개 변수 stats.calcdistinct :

true의 경우, 고유 값이 계산됩니다와 ""countDistinct "를 반환 응답에서 "distinctValues". 이 계산은 일부 필드에서는 비용이 많이들 수 있으므로 기본적으로 false입니다. 특정 필드에 대해 고유 한 값만 리턴하려는 경우, f.stats.calcdistinct를 필드 이름으로 YY 고 지정하여 구별 값 계산을 필수 필드로 제한 할 수 있습니다.

로드를 가능한 한 적게 검색하고 결과를 캐시하고 데이터가 변경된 경우에만 다시 검색하십시오.

인덱스가 일반적으로 느린 경우 캐시 구성을보고 싶거나 SOLR에 더 많은 RAM을 제공 할 수 있습니다 (수단이있는 경우).

는 원래 (내게로) 여기에 대답

https://stackoverflow.com/a/26714447/621690

+0

이 옵션은 v3.x에서 사용할 수 없습니다. v3.x에 대한 대답이 있습니까? –

+0

@ScottChu Solr 1.3.x를 의미합니까? 그게 정말 늙었 어, 나는 그 버전으로 일해온 긴 시간이야. Luke (Solr 관리자)가 올바르게 기억한다면이 정보를 가지고 있기 때문에 1.3을 사용하더라도 용어 구성 요소를 사용하여 얻을 수 있다고 생각합니다. – Risadinha

+0

아니요! 나는 Solr 3.x를 의미합니다. 우리는 오래된 Solr 3.5 제품을 가지고 있습니다. 나는 당신의 대답을 시도했지만 효과가 없습니다! –