2012-09-14 3 views
2

각기 다른 필드 세트를 사용하여 여러 문서 유형에 대한 검색을 설정하려고합니다. 따라서 검색은 항상 모든 문서 유형에 공통적 인 가장 일반적인 패싯 필드 (예 : 제품 카테고리)로 시작해야합니다. 내가 아는Apache Solr에서 패싯 필드의 계층 구조 (계층 적 패싯이 아님)?

PRODUCT CATEGORY 
> Camera 

BRAND 
- Canon (42) 
- Nikon (96) 
- Sony (11) 
- Samsung (63) 

CAPACITY 
- 1Gb (42) 
- 2Gb (96) 
- 3Gb (11) 
- 4Gb (63) 

:

PRODUCT CATEGORY 
- Camera (42) 
- TV & Video (96) 
- MP3 Player (11) 
- Video Game (63) 

"카메라"를 선택한 후, 나는 다음과 같은 해당 문서 유형 (예 : 브랜드, 용량)에 단독으로 새로운면 필드의 전체 세트를 활성화해야 이것은 facet.field 쿼리 매개 변수를 프로그래밍 방식으로 관리하여 수행 할 수 있지만 체계적으로 구축하는 더 좋은 방법이 있습니까? Solr과 필드 구조 내부에이 패싯 필드 종속성을 허용하는 기능이나 팁이 있습니까?

고맙습니다.

편집 : 제목을 "패싯 필드의 종속성"에서 변경했습니다.

답변

0

나는 IMO 어떤 의존성을 만들 필요가 없습니다, 각 문서의 appropiate 정보를 당신에게 인덱스를 보장함으로써 그것을 할 수 있다고 생각 this wiki page on hierarchical facetting

+0

예, 필자는 그것을 읽었으며 실제로는 계층 구조가 있지만 패싯이 아닙니다. 이는 필드 간의 계층 구조에 관한 것입니다. 예를 들어, ** Brand ** 및 ** Capacity **와 같이 ** Product category **의 "child"필드는 부모 필드에서의 필터링이 자식 필드에서 자동으로 사용할 수있는 패 시팅이 될 수 있습니다. – brutus

+0

0/Canon, 1/Canon/4Gb 등의 값을 가진 필드를 추가하는 것은 어떨까요? – Persimmonium

+0

재미있는 것은 3 개의 필드를 하나로 모으는 것입니다. 레벨은 하나의 계층 적 필드입니까? 너무 제한적이지 않겠습니까? 필자의 경우 1 필드는 2 명 (또는 그 이상)을 가능케하지만, 귀하의 제안은 엄격하게 단일 자녀에게 이르게하지 않겠습니까? 회색 상자에 그림처럼 필드를 별도로 표시하려면 어떻게해야합니까? – brutus

2

봐.
이 항목에 대한 개별 필드를 만들 수 있습니다.

초기 쿼리를 수행 할 때 제품 유형이 중요합니다.
그런 다음 특정 제품 유형을 필터링하면 필터별로 결과에서 패싯 만 가져옵니다.

예 : 제품 유형 카메라가 때 것

그래서 제품 유형 TV & 비디오는 다른 속성을 가진 브랜드 노래, 등등 삼성을 ... 것 몇 가지 용량 옵션과 함께 브랜드 캐논, 등등과 같은 니콘을 ... 것 카메라 필터 (fq=product_type:Camera)를 사용하면 용량 옵션이있는이 필터 내에서 제품 유형 카메라 및 브랜드에 대한 결과 만 제한됩니다.
필터링은 종속성을 처리해야합니다.

+0

예,'field.facet'은 inicial 쿼리에,'fq'는 패싯 링크에 있습니까? 이것은이 "필드 계층 구조"(1- 제품 범주/2- 브랜드, 용량)의 2 가지 수준에 대해서만 좋은 아이디어입니다.하지만 더 많은 레벨을 필요로하는 실제 필드 의존성은 없습니다. – brutus

+0

패싯을 선택하는 순서를 적용하려면 사용자가 필터링 할 수있는 것처럼 일부 계층 구조를 사용해야하며 브랜드 및 용량 만 원한다고해도 (fq = product_type : Camera) after price라고 말하면됩니다. 이용 가능할 것입니다 – Persimmonium

+0

당신이 옳습니다. 그리고 "일부 계층 구조"가 내가 찾고있는 것입니다 :면 처리를위한 필드 계층 구조 (제목을 다시 쓰려고합니다). 그러한 기능이없는 것처럼 보이기 때문에 사용자 정의 코드가 유일한 방법입니까? – brutus