2013-02-19 3 views
0

파일 저장 소프트웨어를 구축하고 있습니다. 파일의 메타 데이터 filesizeuserId 같은 필드 색인 내가하고 싶은 무엇Solr - 주어진 사용자의 모든 "filemetadata.filesize"필드의 합계를 가져옵니다.

는 사용자에 의해 사용되는 공간을 산출 할 수 있어야하는 것입니다. exemple 들어

I 문서가있는 경우 :

  • documentId = 1 | userId = 1 | fileSize = 10
  • documentId = 2 | userId = 2 | fileSize = 5
  • documentId = 3 | userId = 1 | 이는 파일 크기 = 3
userId를 = 1 내가있는 13메가바이트을 결과를 검색 할 수 있도록 내가 쿼리를 실행하고 싶습니다

(10 + 3)

나는 우리가 FunctionQuery을 실행할 수 있음을 보았다

하지만, 그것은 내가 찾고있는 것을하지 않는 것 같습니다.

그룹화 된 결과에서 집계 함수를 실행할 수없는 FieldCollapsing과 동일합니다.


나는 StatsComponent를 테스트했지만 알 수없는 이유로 작동하지 않습니다.

<field name="FileSize" type="integer" indexed="false" stored="true" required="true" /> 
<field name="OtherField" type="sfloat" indexed="true" stored="true" required="false" /> 
<field name="OtherField2" type="integer" indexed="true" stored="true" required="false" multiValued="false"/> 
<field name="OtherField3" type="integer" indexed="true" stored="true" required="false" multiValued="false"/> 

을 그리고 쿼리를 수행 할 때

http://mysolr:8414/solr/mycore/select/?q=docId:123 
&rows=0 
&stats=true 
&stats.field=FileSize 
&stats.field=OtherField 
&stats.field=OtherField2 
&stats.field=OtherField3 

나는 다시 결과를 얻을 :

내 스키마를 포함

<lst name="stats"> 
    <lst name="stats_fields"> 
    <null name="FileSize"/> 
    <lst name="OtherField"> 
     <double name="min">6.0</double> 
     <double name="max">6.0</double> 
     <long name="count">1</long> 
     <long name="missing">0</long> 
     <double name="sum">6.0</double> 
     <double name="sumOfSquares">36.0</double> 
     <double name="mean">6.0</double> 
     <double name="stddev">0.0</double> 
     <lst name="facets"/> 
    </lst> 
    <lst name="OtherField2"> 
     <double name="min">0.0</double> 
     <double name="max">0.0</double> 
     <long name="count">1</long> 
     <long name="missing">0</long> 
     <double name="sum">0.0</double> 
     <double name="sumOfSquares">0.0</double> 
     <double name="mean">0.0</double> 
     <double name="stddev">0.0</double> 
     <lst name="facets"/> 
    </lst> 
    <null name="OtherField3"/> 
    </lst> 
</lst> 

을 당신은 내가 요구하고있어 볼 수 있듯이 단일 문서에 대한 통계 (실제로 유용하지는 않지만 디버그에 도움이됩니다. 어쨌든 q=docId:123이 반환되지 않음) 나 더 나은 결과). 이 문서는 15 세트 파일 크기는 내가 필드 OtherFieldOtherField2에 대한 통계를 얻을 수있는 이유는 SOLR 4.1

누군가가 설명해 주시겠습니까 사용할 수 있습니다,하지만 필드 FileSizeOtherField3 하시나요? 문제가 전혀 표시되지 않습니다 ...

+0

다시 StatsComponent 아무 대답이 없다? q = userId : 1이 아니어야합니까? –

+0

내 최종 쿼리 예,하지만 내가 직접 docId에 filtred 디버깅하는 데 도움이 –

답변

0

좋은 소식, 저에게 해결책을 찾는 데 도움이되었습니다. 기존 스키마를 사용하고 FileSize 필드에 indexed="false"이 있다는 것을 알지 못했습니다. 이 속성을 true로 설정하면 StatsComponent가 해당 필드에 대한 통계를 반환합니다! 123 : 왜 Q = DOCID해야합니까 -

그러나 OtherField2과 정확히 동일한 정의가있는 필드 OtherField3, 나는

관련 문제