2011-06-14 6 views
1

다음 문제를 처리하는 방법을 모르겠습니다. 그래서 여기에 아이디어 나 그런 것들을 얻기를 바랍니다. 나는 solan과 함께 lucene을 사용하고 있습니다. 필드 (일부 키워드 포함)후 처리 solr의 패싯 처리 된 검색 결과

면 검색을 사용하여 특정 날짜에 모든 키워드의 빈도를 계산할 수 있습니다.

예 1 (의사 코드) :

1st search where date=today: 
web=>70 
apple=>35 
blue=>32 

2nd search where date=yesterday: 
web=>65 
blue=>55 
apple=>5 

하지만 지금은 워드 주파수가 매우 강한 성장하고 마녀하지 않는 계산하기 위해 하나 SOLR/루씬 쿼리에 결과를 결합하고 싶습니다. 결과가 될 수있다 :

예 2 :

one search merging both querys from example 1 
web=>(70,65) <- growth +7,69% 
blue=>(32,55) <- growth -41,81% 
apple=>(34,5) <- growth +680% 

가능 (유용한) SOLR 안에이 통합 (그리고 calclulation을)하는 것입니다 또는 더 나은 2 SOLR의 querys (예 : 1 참조 시작하는 것입니다) PHP로 결과를 후 처리 하시겠습니까?

너보다!

답변

0

패싯 값이 선험적 인 경우 패싯 값, 즉 facet.query=category:web AND date:[2011-06-14T00:00:00Z TO 2011-06-14T23:59:59Z]&facet.query=category:web AND date:[2011-06-13T00:00:00Z TO 2011-06-13T23:59:59Z]&...과 같은 패싯 쿼리를 사용하면 패싯 값 * 날짜의 직교 곱을 수행 할 수 있습니다.

그렇지 않으면 Solr 안에서 이렇게하려면 사용자 정의 Java faceting 코드를 작성해야한다고 생각합니다. 또는 언급 한대로 여러 쿼리를 사용하여 클라이언트 측에서 수행하십시오.

+0

해답을 제공해 주셔서 감사합니다. 하지만 그건 내 요구에 정확히 맞지 않는다. "용어"(예 :) "웹"은 firs 쿼리 결과입니다 (예제 1의 결과). facet.date.start, facet.date.end 및 facet.date.gap을 사용하여 예제 1의 쿼리 결과를 통합 할 수 있습니다. 그러나 후 처리 방법은 무엇입니까? 자신의 자바 패싯 코드를 작성하는 것만 가능하다면 - PHP로 후 처리하는 것이 나에게 더 좋은 방법 일 것이다. 고맙습니다. –

+0

facet.date.start를 사용할 수 있다고 생각하지 않습니다. 패싯 쿼리의 데카르트 제품이 필요합니다. –

+0

다음 예제를 보면 이상한 결과가 나옵니다. 솔기가 "facet.query"키워드를 인식하지 못한다. 이것이 가능할 수 있습니까? 반면에 : (fq =)는 fq =와 facet.query가 동일합니다. 맞습니까? 마지막으로, 솔라 설치 솔기는 "fq"사이의 AND 연산자를 사용합니다. 그 망, 첫 번째와 둘째 날에는 카테고리를 계산하지 않습니다. 같은 시간에 1 일과 2 일째에있는 문서를 태양열 검색하면 ' '이됩니다. numFound = "0" ' –