2011-05-01 2 views
2

solrnet을 사용하여 asp.net에 빌드 된 제품 카탈로그에 대해 Solr을 사용하고 있으며 모든 것이 지금까지 꽤 잘 작동합니다. 일부 그룹화 옵션을 추가하여 검색 결과를 확장해야합니다.Solr/SolrNet 결과 그룹화

우선 스키마 모양을 설명 할 것 같은 : 당신이 제품은 위의 "GROUP_ID"및 "그룹 이름"또한 내가라는 이름의 부울 플래그는 " 그룹이"한을 가지고 볼 그래서

<field name="product_id" type="string" indexed="true" stored="true" required="true" /> 
<field name="name" type="string" indexed="true" stored="true"/> 
<field name="merchant" type="string" indexed="true" stored="true"/> 
<field name="merchant_id" type="int" indexed="false" stored="true"/> 
<field name="merchant_logo" type="string" indexed="false" stored="true"/> 
<field name="brand" type="string" indexed="true" stored="true"/> 
<field name="brand_id" type="int" indexed="false" stored="true"/> 
<field name="group_id" type="int" indexed="true" stored="true"/> 
<field name="group_name" type="string" indexed="true" stored="true"/> 
<field name="has_group" type="boolean" indexed="true" stored="true"/> 

내 스키마에. 여기

제품의 몇 가지 예

Product A – group id 1 - group Name 1 – has group true 
Product B – group id 1 - group Name 1 – has group true 
Product C – group id 2 - group Name 2 – has group true 
Product D – group id 2 - group Name 2 – has group true 
Product E – has group false 
Product F – has group false 

결과입니다하지만 이러한 결과를 보여주는있을 때, 나는 그 그룹 이름에 의해 결과 상단에 그룹 이름 (또는 IDS)와 제품을 표시해야합니다. 그룹에 속하지 않은 제품은 그룹 바로 다음에 나열됩니다. 일부 제품에 대한 사람 검색이 제품이 내가 그들을 나열하겠습니다 그룹 이름이 포함 된 경우 때

Group Name 1 
Group Name 2 
Product E 
Product F 

는 사실 내가 즉, 그래서뿐만 아니라 페이지 매김을 구현해야합니다

그래서 내 결과를해야처럼 보이는 그 결과와 다른 제품의 상단에

이것도 가능합니까? 가능하다면 무엇을해야할까요? 나는 이미 솔직하게 FieldCollapsing에 대해 읽었지 만 이것이 올바른 방법인지 아닌지 잘 모르겠다. http://wiki.apache.org/solr/FieldCollapsing

+0

그룹화가 결과에 영향을 미치거나 표시 전용입니까? (즉 Solr이 반환하는 그룹 만 표시) –

+0

제품 검색을 할 때 현재 작동하는 방식으로 그룹 데이터가있는 제품과 그룹 데이터가없는 제품이 혼합되어 있습니다. 기본적으로 제품 결과를 인쇄 할 때 먼저 인쇄 할 제품 그룹 이름 (그룹 이름 만 필요함)과 다른 제품이 필요합니다. Solr 자체가 solr 결과를 그룹화 할 수 있습니까? 페이싱뿐만 아니라 결과에 페이지 매김을 사용해야하기 때문에. 그래서 내가 찾고있는 것은 그룹화를위한 Solr 쿼리입니다. – randika

+0

내가 묻는 것은 전체 인덱스에서 결과를 그룹화해야합니까? 또는 단일 결과 페이지 내에서만? –

답변

0

예, 전체 인덱스를 그룹화하려면 field collapsing 기능이 필요합니다. SolrNet의 지원은 현재 Solr의 출시되지 않은 기능이며 SolrNet의 첫 번째 구현 이후 많이 변경 되었기 때문에 현재 고장입니다. 자세한 내용 및 업데이트는 http://code.google.com/p/solrnet/issues/detail?id=127을 참조하십시오.

+0

좋아, SoltNet의 그룹화 옵션은 트렁크에서 사용할 수 없지만 solr의 nighly 빌드에서 사용할 수 있습니다. - 어쨌든 당신은 색인을 통해 또는 디스플레이만을 위해이 작업이 필요한지 묻습니다. 어쨌든 디스플레이 수준에서 그룹화 할 수 있다고 생각하십니까? 고맙습니다. – randika

+0

@randika : 전체 색인을 통해 그룹화하려면 서버 측 지원이 필요합니다 (Solr 및 SolrNet). 단일 결과 페이지에서만 그룹화하려는 경우 LINQ를 사용하여 쉽게 수행 할 수 있습니다. –

+0

Hi Mauricio, 필드 축소가 Solr의 안정적인 릴리스로 사용할 수 없기 때문에이를 사용하지 않기로 결정 했으므로 같은 인덱스에도 '그룹'색인을 지정하기로 결정했습니다. 따라서 지금 검색 할 때 제품과 그룹 이름을 모두 나열 할 수 있습니다. 그래서 작동합니다. 그러나 여전히 결과 상단에 그룹 이름을 표시 할 수 없습니다. – randika