2013-08-12 2 views
1

동일한 이름 (company_id)을 가지고 있지만없는 엔티티를 기반으로 문서를 쿼리하기 위해 다른 엔티티의 두 필드에서 조인을 시도하고 있습니다.Solr 쿼리 시간 조인

예 : 판매 법인과 회사 엔티티가 있습니다. 판매 법인은 회사 id를 보유하고 회사 엔티티는 회사 이름을 보유합니다.

크기 때문에 인덱스 시간에이 조인을 수행 할 수 없습니다.

x 이상의 매매가있는 회사의 이름을 알고 싶습니다. fq 하나

q={!join+from=company_id+to=company_id}sales:[100 TO *] 

fq={!join+from=company_id+to=company_id}sales:[100 TO *] 

가 난 그냥 q 매개 변수로 *:* 지정 :

나는 다음 두 가지 모두를 시도했다.

두 가지 경우 모두 결과가 있지만 결과에 해당 범위의 매출이 없습니다.

어떻게 해결할 수 있습니까? 이 관여 하나의 엔티티와 함께 ​​작동하도록 나타납니다 : SOLR 4.4

주 사용

.

답변

0

"다른 엔티티"는 2 Solr Core를 말하는 것입니까? 나는 해결책을 발견 한이 링크 Solr-join

에서

http://localhost:8983/solr/<coreTO>/select?q={!join from=docId to=id fromIndex=<coreFROM>}query 
+0

아니요, 여러 엔터티 ( 태그 중 두 세트 이상) – soandos

0

: 이 경우 당신은 약간 다른 sintax를 사용합니다. 이에 따라

:

조인 작업이 용어를 기준으로 이루어집니다, 그래서 "에서"및 필드는 호환 필드 유형을 사용해야합니다 "로". 예를 들어, StrField와 TrieIntField 사이의 조인은 작동하지 않으며 StrField와 LowerCaseFilterFactory를 사용하는 TextField 사이의 조인은 문자열 필드에 이미 낮은 값만있는 값에 대해서만 작동합니다.

+0

"시작"및 "종료"필드 형식이 동일해야합니다.