2013-01-30 6 views
1

두 개의 별도 쿼리에 가입하고 싶습니다. 그리고 그들로부터 정보를 표시하십시오. 첫 번째 쿼리는 캐나다에서 두 번째 쿼리는 Incremento 인 회사입니다. 따라서 별도의 쿼리를 실행하고 결과 정보를 조인해야합니다.Solr. 두 개의 별도 쿼리를 결합하는 방법

내 스키마는 다음과 같습니다

<entity name="firm" dataSource="jdbc" pk="id" 
    query="select * from firm" 
    deltaImportQuery="select * from firm where id='${dih.delta.id}'" 
     deltaQuery="select id from firm where upd_date &gt; '${dih.last_index_time}'"> 
    <field column="id" name="id"/> 
    <field column="ADDRESS" name="address"/> 
    <field column="EMPLOYEE" name="employee"/> 
    <field column="NAME" name="name"/> 
    <field column="VILLAGE" name="village"/> 
    <field column="ZIPCODE" name="zipcode"/> 
    <field column="PLACE" name="place"/> 
    <entity name="country" pk="id" 
    query="select country from country where id='${firm.country}'" 
    deltaQuery="select id from country where upd_date > '${dih.last_index_time}'" 
    parentDeltaQuery="select id from firm where country=${country.id}"> 
     <field column="country" name="countryName"/> 
    </entity> 
    </entity> 

어떻게 할까 ???

답변

0

검색 : -

당신은 예를 들어, 사용할 수 있습니다

q=name:incremento&fq=location:Canada은 - 단지 위치 캐나다

fq=location:Canada&fq=name:Incremento와 기업에 이름 Incremento와 기업을 검색 - 위치 캐나다와 기업 및 이름 Incremento

인덱싱 필터 : -
당신은 SQL에서 처리 할 수 ​​있습니다 캐나다에서 온 compaines와 Incremento라는 이름으로 OR을 사용하여 쿼리하십시오.
예 : SELECT * FROM FIRMS WHERE COUNTRY='CANADA' OR NAME='INCREMENTO'

또는 DIH는 태그 만 허용합니다. 루트 태그가 여러 개있을 수 있습니다. 예 :

<dataSource driver="..." url="..." user=".." /> 
    <document name="companies"> 
     <entity name="firm_canada" dataSource="jdbc" pk="id" 
      query="select * from firm" 
      deltaImportQuery="select * from firm where id='${dih.delta.id}'" 
       deltaQuery="select id from firm where upd_date &gt; '${dih.last_index_time}'"> 
      <field column="id" name="id"/> 
      .... 
     </entity> 
     <entity name="firm_incremento" dataSource="jdbc" pk="id" 
      query="select * from firm where ..." 
      deltaImportQuery="select * from firm where id='${dih.delta.id}'" 
       deltaQuery="select id from firm where upd_date &gt; '${dih.last_index_time}'"> 
      <field column="id" name="id"/> 
      .... 
     </entity>  
    </document> 
</dataSource> 
+0

SQL 쿼리에 응답했습니다. 그러나 Solr 쿼리에서 Solr 쿼리를 수행하는 방법을 알고 싶습니다. /select? q = lastname @ gmail & qf = id + firstName + lastName + email & defType = edismax & debugQuery = true ???? – AndreyKirsanovPenza

+0

이 답변을 업데이트했습니다. 나는 당신의 질문을 오해했습니다. – Jayendra

관련 문제