2013-04-09 3 views
2

나는 새가 SOLR로, 현재 내 쿼리는 해당 우편 번호와 함께 회사를 반환, 우편 번호가 배열 형 필드, 결과의 일부는 자신의 우편 번호 노드에 대해 여러 값을 포함하고 일부는 하나를 가지고입니다입니다 단일 값.SOLR 쿼리 필드

결과의 SET :

<doc> 
<str name="company">Alien Technology</str> 
<arr name="postCode"> 
    <str>2068</str> 
    <str>2065</str> 
    <str>2066</str> 
    <str>2061</str> 
    <str>2077</str> 
</arr> 
.... 
</doc> 

<doc> 
<str name="company">Cris' Sports</str> 
<arr name="postCode"> 
    <str>2068</str> 
</arr> 
... 
</doc> 

<doc> 
<str name="company">Hyper Consultation Firm</str> 
<arr name="postCode"> 
    <str>2068</str> 
    <str>2000</str> 
    <str>2071</str> 
</arr> 
... 
</doc> 

<doc> 
<str name="company">DJ Goods & Gadgets</str> 
<arr name="postCode"> 
    <str>2068</str> 
</arr> 
... 
</doc> 

...

내 질문 여기되고, 자신의 우편 번호에 대해 하나 개의 값을 갖거나 그 반대의 경우도 마찬가지 다수 포함되어 그 데이터를 가져 데이터 만 가져 오는 것이 가능 값은 해당 postCode 필드에 대해 사용하고 다른 하나는 해당 postCode에 대해 하나의 값만 제외합니다. SOLR 쿼리를 사용하여이 작업을 수행 할 수 있습니까?

예 :

내가 우편 번호 검색 = 2068 그들은 단지 우편 번호 필드 하나 개의 값을 가지고 있기 때문에 내 첫 번째 쿼리는 크리스 스포츠와 DJ 제품 및 가젯을 반환

.

제 2의 쿼리가 둘 다 이후에만 외국인 기술 및 하이퍼 상담 사무소를 반환은 우편 번호 필드에 대해 여러 개의 값이 포함되어 있습니다.

감사합니다 모두!

답변

1

은 다중 값 필드 또는 같은를 계산하는 기능 쿼리에있는 항목의 수를 얻을 수있는 직접적인 방법이 없습니다.
당신은 항상 인덱싱 동안 필드 수를 유지하고 쿼리 시간 동안 사용할 수 있습니다. 당신은 일종의 점수 (내림차순)으로, 하나의 값으로 필드 그래서 다른 사람보다 먼저 나열됩니다 높은 점수를해야합니다

0

. 최대 점수와 일치하는 문서 만 포함하도록 결과 집합을 제한하는 방법이 있는지 잘 모릅니다. 클라이언트에서이 작업을 수행 할 수 있습니까?